如果 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
我正在尝试读取 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