我有这个XML
<STOREITEMS>
<CREATED value="Tue Oct 9 5:30:01 BST 2012">
<CATEGORY id="442" name="Hen And Stag Nights"></CATEGORY>
<CATEGORY id="69" name="Games"></CATEGORY>
<CATEGORY id="252" name="Love Zone"></CATEGORY>
<CATEGORY id="202" name="Spotlight Items"></CATEGORY>
</CREATED>
</STOREITEMS>
我需要使用PHP
获取Category - name属性到目前为止,我有这个
$xml = simplexml_load_file("http://www.dropshipping.co.uk/catalog/xml_id_multi_info.xml");
foreach($xml->CATEGORY['name']->attributes() as $category)
{
echo $category;
}
然而,这会返回致命错误:在非对象上调用成员函数attributes()
有什么想法吗? 谢谢。
答案 0 :(得分:5)
CATEGORY
节点嵌套在CREATED
节点内,因此您需要在那里访问它,访问CATEGORY['name']->attributes()
毫无意义,因为这会尝试访问非第一个name
节点的CATEGORY
属性的现有属性。
那么您是想要检索所有CATEGORY
个节点或所有CATEGORY
个节点的名称属性值,还是仅查找具有CATEGORY
属性的name
个节点的名称属性值?
所有CATEGORY
个节点:
foreach($xml->CREATED->CATEGORY as $category)
{
echo $category['name'] . '<br />';
}
只有CATEGORY
个节点名称属性:
foreach($xml->xpath('//CATEGORY/@name') as $name)
{
echo $name . '<br />';
}
仅具有name属性的CATEGORY
个节点:
foreach($xml->xpath('//CATEGORY[@name]') as $category)
{
echo $category['name'] . '<br />';
}