PHP.mk документација

xml_parse_into_struct

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.xml-parse-into-struct.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.xml-parse-into-struct.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
xml_parse_into_struct

Референца за `function.xml-parse-into-struct.php` со подобрена типографија и навигација.

function.xml-parse-into-struct.php

xml_parse_into_struct

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parse_into_structParse XML data into an array structure

= NULL

xml_parse_into_struct(
         XMLParser $parser,
         string $data,
         array &$values,
         array &$index = null
): int|false

Парсирај XML податоци во структура на низаindexОваа функција парсира XML стринг во 2 паралелни структури на низи, една ( values ) содржи покажувачи до локацијата на соодветните вредности во

Параметри

parser

низата. Овие последни два параметри мора да се поминат со референца.

data

Референца до XML парсер.

values

Стринг што содржи XML податоци.

index

An array containing pointers to the location of the appropriate values in the $values.

Вратени вредности

xml_parse_into_struct() Низа што ги содржи вредностите на XML податоците false and trueвраќа 0 за неуспех и 1 за успех. Ова не е исто како

Дневник на промени

Верзија = NULL
8.0.0 parser очекува XMLParser инстанца сега; претходно, валидна xml resource се очекуваше.

Примери

, бидете внимателни со операторите како ===. note Подолу е пример што ја илустрира внатрешната структура на низите што се генерираат од функцијата. Користиме едноставен para таг вграден во

Пример #1 xml_parse_into_struct() example

<?php
$simple
= "<para><note>simple note</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
echo
"Index array\n";
print_r($index);
echo
"\nVals array\n";
print_r($vals);
?>

таг, а потоа го парсираме ова и ги печатиме генерираните структури:

Index array
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Vals array
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => simple note
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

Кога ќе го извршиме тој код, излезот ќе биде:

Парсирањето водено од настани (базирано на библиотеката expat) може да стане комплицирано кога имате XML документ што е сложен. Оваа функција не произведува DOM објект, но генерира структури што може да се прегледуваат во форма на дрво. Така, можеме лесно да создадеме објекти што ги претставуваат податоците во XML датотеката. Да го разгледаме следната XML датотека што претставува мала база на податоци со информации за аминокиселини:

<?xml version="1.0"?>
<moldb>

  <molecule>
      <name>Alanine</name>
      <symbol>ala</symbol>
      <code>A</code>
      <type>hydrophobic</type>
  </molecule>

  <molecule>
      <name>Lysine</name>
      <symbol>lys</symbol>
      <code>K</code>
      <type>charged</type>
  </molecule>

</moldb>
Пример #2 moldb.xml - мала база на податоци со молекуларни информации

И некој код за парсирање на документот и генерирање на соодветните објекти:

<?php

class AminoAcid {
var
$name; // aa name
var $symbol; // three letter symbol
var $code; // one letter code
var $type; // hydrophobic, charged or neutral

function __construct ($aa)
{
foreach (
$aa as $k=>$v)
$this->$k = $aa[$k];
}
}

function
readDatabase($filename)
{
// read the XML database of aminoacids
$data = file_get_contents($filename);
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, $data, $values, $tags);
unset(
$parser);

// loop through the structures
foreach ($tags as $key=>$val) {
if (
$key == "molecule") {
$molranges = $val;
// each contiguous pair of array entries are the
// lower and upper range for each molecule definition
for ($i=0; $i < count($molranges); $i+=2) {
$offset = $molranges[$i] + 1;
$len = $molranges[$i + 1] - $offset;
$tdb[] = parseMol(array_slice($values, $offset, $len));
}
} else {
continue;
}
}
return
$tdb;
}

function
parseMol($mvalues)
{
for (
$i=0; $i < count($mvalues); $i++) {
$mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
}
return new
AminoAcid($mol);
}

$db = readDatabase("moldb.xml");
echo
"** Database of AminoAcid objects:\n";
print_r($db);

?>
Пример #3 parsemoldb.php - парсира moldb.xml во низа од молекуларни објекти parsemoldb.phpПо извршувањето на $db , променливата AminoAcid објекти, а излезот од скриптата потврдува дека:
** Database of AminoAcid objects:
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.