simplexml和xpath - 回显节点?
问题描述:
我通过xpath
选择从SimpleXML的对象中的某个节点:simplexml和xpath - 回显节点?
$x="<root>
<person>
<name>Julie</name>
<age>37</age>
<rating>5</rating>
</person>
<person>
<name>Greta</name>
<age>56</age>
<rating>7</rating>
</person>
<person>
<name>Kerstin</name>
<age>38</age>
<rating>10</rating>
</person>
</root>";
$xml = simplexml_load_string($x);
$person = $xml->xpath("//person[name='Greta']");
foreach ($person[0] as $k => $v)
echo "$k => $v<br />";
这是预期输出...
name => Greta<br />age => 56<br />rating => 7<br />
然后我做...
echo $person[0]['age'];
输出:
没错!为什么?
答
SimpleXML使用对象属性,而不是阵列成员,为子节点(阵列部件用于访问节点的属性)。下面的表达式将让你的年龄:
echo $person[0]->age;
如果XML已经看上去像下面,你的代码会工作:
<root>
<person age="37">
<name>Julie</name>
<rating>5</rating>
</person>
...
哈哈,这很容易,谢谢! – michi 2013-03-27 23:14:36