simplexml_load_file() 没有获取节点内容
simplexml_load_file() does not getting node content
我无法使用 SimpleXML 库同时获取 XML 节点内容和属性:
我有以下 XML,想要获取 content@name
属性和节点的内容:
<page id="id1">
<content name="abc">def</content>
</page>
方法simplexml_load_string()
print_r(simplexml_load_string('<page id="id1"><content name="abc">def</content></page>'));
输出这个:
SimpleXMLElement Object
(
[@attributes] => Array
(
[id] => id1
)
[content] => def
)
如您所见,content
节点的内容存在,但缺少属性。如何接收内容和属性?
谢谢!
内容的属性存在。这只是 print_r() 的一个技巧,以及它如何处理内存中的 XML 个对象。
$x = simplexml_load_string('<page id="id1"><content name="abc">def</content></page>');
print_r($x->content);
print_r($x->content['name']);
SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => abc
)
[0] => def
)
SimpleXMLElement Object
(
[0] => abc
)
在 simplexml 中,访问元素 returns SimpleXMLElement 对象。您可以使用 var_dump.
查看这些对象的内容
$book=simplexml_load_string('<page id="id1"><content name="abc">def</content></page>');
$content=$book->content;
var_dump($content);
您可以使用 foreach 循环访问这些对象。
foreach($obj as $value) {
if (is_array($value)) {
foreach ($value as $name=>$value) {
print $name.": ".$value."\n";}
}
else print $value;
}
您不仅可以检索内容(例如元素和属性),还可以添加和删除它们。您还可以使用 Xpath 在复杂的 XML 树中导航值。你只需要通过SimpleXMLElement class here.
的方法
$x = simplexml_load_string('<page id="id1"><content name="abc">def</content></page>');
获取节点的属性:
$attributes = $x->content->attributes(); //where content is the name of the node
$name = $attributes['name'];
获取content
节点的内容:
$c = $x->content;
有趣的是,$c 可以用作字符串和对象,即
echo $c; //prints string
print_r($c) //prints it out as object
我无法使用 SimpleXML 库同时获取 XML 节点内容和属性:
我有以下 XML,想要获取 content@name
属性和节点的内容:
<page id="id1">
<content name="abc">def</content>
</page>
方法simplexml_load_string()
print_r(simplexml_load_string('<page id="id1"><content name="abc">def</content></page>'));
输出这个:
SimpleXMLElement Object
(
[@attributes] => Array
(
[id] => id1
)
[content] => def
)
如您所见,content
节点的内容存在,但缺少属性。如何接收内容和属性?
谢谢!
内容的属性存在。这只是 print_r() 的一个技巧,以及它如何处理内存中的 XML 个对象。
$x = simplexml_load_string('<page id="id1"><content name="abc">def</content></page>');
print_r($x->content);
print_r($x->content['name']);
SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => abc
)
[0] => def
)
SimpleXMLElement Object
(
[0] => abc
)
在 simplexml 中,访问元素 returns SimpleXMLElement 对象。您可以使用 var_dump.
查看这些对象的内容$book=simplexml_load_string('<page id="id1"><content name="abc">def</content></page>');
$content=$book->content;
var_dump($content);
您可以使用 foreach 循环访问这些对象。
foreach($obj as $value) {
if (is_array($value)) {
foreach ($value as $name=>$value) {
print $name.": ".$value."\n";}
}
else print $value;
}
您不仅可以检索内容(例如元素和属性),还可以添加和删除它们。您还可以使用 Xpath 在复杂的 XML 树中导航值。你只需要通过SimpleXMLElement class here.
的方法$x = simplexml_load_string('<page id="id1"><content name="abc">def</content></page>');
获取节点的属性:
$attributes = $x->content->attributes(); //where content is the name of the node
$name = $attributes['name'];
获取content
节点的内容:
$c = $x->content;
有趣的是,$c 可以用作字符串和对象,即
echo $c; //prints string
print_r($c) //prints it out as object