我通过xpath从simplexml-Object中选择一个节点
$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'];输出:
对,什么都没有!为什么?
在@ http://3v4l.org/Voalu上体验一下吧
发布于 2013-03-28 07:11:06
对于子节点,SimpleXML使用对象属性,而不是数组成员(数组成员用于访问节点属性)。下面的表达式将为您提供年龄:
echo $person[0]->age;如果XML看起来像下面这样,那么您的代码就可以工作了:
<root>
<person age="37">
<name>Julie</name>
<rating>5</rating>
</person>
...https://stackoverflow.com/questions/15671303
复制相似问题