我有以下xml但只想返回例如流派&演员
<properties>
<group>
<name>Product properties</name>
<property>
<id>43560296</id>
<name>Product Title</name>
<value>The Ultimate Ronnie Barker Collection</value>
</property>
<property>
<id>43560273</id>
<name>Genre</name>
<value>Television</value>
</property>
<property>
<id>43560297</id>
<name>Actors</name>
<value>David Jason , Richard Beckinsale , Ronnie Barker , Fulton McKay , Nicholas Lindhurst</value>
</property>
<property>
<id>43560301</id>
<name>Publisher</name>
<value>2 Entertain Video</value>
</property>
</properties>
简单地说:
$xml->group->name->property[1]->id->name->value (for genre)
$xml->group->name->property[2]->id->name->value (for actors)
似乎对我不起作用
感谢您的帮助。
的Darren
答案 0 :(得分:2)
XPath是您的朋友,可通过xpath()
方法使用SimpleXML。
$properties = $xml->xpath('/properties/group/property[name="Genre" or name="Actors"]');
此外,关于您的$xml->group->name…
代码,可能会(重新)阅读文档页面“Basic SimpleXML usage”。
<强>加成强>
如果您想深入研究XML以获得单个匹配property
,那么根据需要调整XPath以适应。
$genres = $xml->xpath('/properties/group/property[name="Genre"]');
// Remember $genres is an array even if there is only one (or none) item.
echo $genres[0]->value;
答案 1 :(得分:0)
$properties = new SimpleXMLElement($yourXMLhere);
echo $properties->group->name->property[1]->id->value;
和
echo $properties->group->name->property[2]->id->value;
是对的。给我们一些代码。
编辑:XML似乎已损坏,关闭<group>
标记,并检查“树”。首先,<property>
为IN <name>
。