Как читать теги xml, если в php есть другой тег? - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь прочитать тег XML, но есть одна проблема, если внутри тега есть другой тег, я получаю только его атрибут.

Пример: у меня есть файл XML

    $myXMLData =
    "<?xml version='1.0' encoding='UTF-8'?>
<note>
<to><hello role='admin'/>Hello World</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>";
$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
echo "<pre>";
print_r($xml);

Вывод:

    SimpleXMLElement Object
(
    [to] => SimpleXMLElement Object
        (
            [hello] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [role] => admin
                        )

                )

        )

    [from] => Jani
    [heading] => Reminder
    [body] => Don't forget me this weekend!
)

Но мне нужен заголовок "Hello World".Кто-нибудь может иметь решение для этого?

1 Ответ

0 голосов
/ 27 сентября 2018

Вы не можете получить значение элемента SimpleXML как объекта, вам нужно вместо этого привести его к строке (или к int, или ...):

$myXMLData = "<title><anchor id='page1' role='first'/>Xyz Title</title>";
$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
echo "<pre>";
echo (string)$xml;

Вывод:

Xyz Title

Для вашего исправленного вопроса просто

echo (string)$xml->to;

Вывод:

Hello world
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...