如果 php 中使用了另一个标签,如何读取 xml 标签?

How to read xml tag, if there is another tag used in php?

我正在尝试读取 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"。有人可以解决这个问题吗?

您无法将 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