PHP SimpleXML Пропуск первого элемента - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть следующий код SimpleXML.Когда я печатаю вывод, он всегда пропускает первый элемент.Поэтому в приведенном ниже примере он пропускает элемент брендов и сразу переходит на веб-сайты.Независимо от того, сколько подуровней у меня есть, оно всегда пропускает первый.

Это нормально?как я могу это исправить?

<code>$xml = '
<brands>
<websites>
</websites>
</brands>
';

$xml = simplexml_load_string($xml);

echo "<pre>";
print_r($xml);
echo "
";

Пример вывода:

SimpleXMLElement Object
(
    [websites] => SimpleXMLElement Object
        (
            [0] => 

        )

)

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Корневой элемент не пропускается.В SimpleXML нет отдельного объекта «документ»;вместо этого, когда вы анализируете файл или строку, возвращаемый вами объект представляет корневой элемент (всегда точно один, если это допустимый XML).

Это можно подтвердить, выполнивecho $xml->getName();

В общем, не обращайте слишком много внимания на то, что print_r / var_dump / etc показывает для объекта SimpleXMLElement - большая часть данных хранится внутри в форме, котораяфункции не видят.

0 голосов
/ 05 декабря 2018

Просто оберните его, используя другой элемент:

<root>
    <brands>
        <websites>
        </websites>
    </brands>
</root>
...