假设我有以下XML结构:
<?xml version="1.0" encoding="UTF-8"?>
<main>
<parent>
<child1>some value</child1>
<child2>another value</child2>
</parent>
</main>
我创建了XML的变量,现在我想得到child1的值,所以我使用SimpleXML:
$xml = new SimpleXMLElement($xml);
$this->xmlcode = (string) $xml->main->parent->child1;
但我收到此消息:注意:尝试在第x行的/x.php中获取非对象的属性
我也尝试使用$ xml-&gt; parent-&gt; child1,但没有成功。
任何??
答案 0 :(得分:23)
$xml = new SimpleXMLElement($xml);
$this->xmlcode = (string) $xml->parent[0]->child1;
答案 1 :(得分:2)
在这里可以找到使用XP和SimpleXMLElement的XP的一个很好的例子 http://www.php.net/manual/en/class.simplexmlelement.php#95229
// Find the topmost element of the domDocument
$xpath = new DOMXPath($xml);
$child1 = $xpath->evaluate('/main/parent/child1')->item(0);
答案 2 :(得分:0)
xpath 的变量(以及如何获取名称中带有破折号的节点的内容):
<?xml version="1.0" encoding="UTF-8"?> <main> <parent> <child-1>some value</child-1> <child-2>another value</child-2> </parent> </main>
$xml = simplexml_load_string($content);
$node_value= (string)$xml->xpath('parent/child-1')[0];
$ node_value的结果:
“某些价值”