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

ただし、これは致命的なエラーを返します。非オブジェクトのメンバー関数attributes()を呼び出す

何か案は?ありがとうございました。

4

1 に答える 1

5

ノードはCATEGORYノード内にネストされているCREATEDため、そこにアクセスする必要があります。最初のノードCATEGORY['name']->attributes()の属性に存在しない属性にアクセスしようとするため、アクセスしても意味がありません。nameCATEGORY

では、すべてのノードの名前属性値を取得しますCATEGORYか、それともすべてのノードを取得しますか、それとも属性を持つノードCATEGORYのみを取得しますか?CATEGORYname

すべてのCATEGORYノード:

foreach($xml->CREATED->CATEGORY as $category)
{
    echo $category['name'] . '<br />';
}

CATEGORYノード名属性のみ:

foreach($xml->xpath('//CATEGORY/@name') as $name)
{
    echo $name . '<br />';
}

CATEGORYname属性を持つノードのみ:

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