0

我有这个 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; 
}

然而,这会返回致命错误:调用非对象上的成员函数属性()

有任何想法吗?谢谢你。

4

1 回答 1

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 />';
}

只有CATEGORY具有 name 属性的节点:

foreach($xml->xpath('//CATEGORY[@name]') as $category)
{
    echo $category['name'] . '<br />';
}
于 2012-10-09T14:10:14.287 回答