2011-12-29 11 views
0

XMLファイルには、以下に見られることができます。のSimpleXMLのXpath

製品や提供データが順に表示されているので、どのように私はそれをコーディングすることができます。これは、しかし、すべてのデータを表示しません

foreach ($xml->GeneralSearchResponse->categories->category->items->xpath('/product | /offer') as $product) 
{ 

    print $product->name; 
} 

は現在、私は次のコードを試してみました。

おかげで、

ジャックXMLが提供されたリンクで指さ

+0

どのような注文ですか?そして、どのXML要素が製品を表しており、それはどのようなオファーですか? - これまでに何を試してみましたか?コードを追加して、xpathのどの部分に問題があるのか​​を具体的に示してください。 – hakre

+0

こんにちはでも、どのような順序でもかまいません。 – JackTheJack

+0

私が試してみました: foreachの($ XML-> GeneralSearchResponse-> categories-> category->項目 - >のxpath(| $製品として '/製品/オファー')){ \tプリント$製品 - >名前を; } – JackTheJack

答えて

1

を整形式ではありません。ほとんどの場合、XML解析エラーが発生します。

具体的には、&somename=&somename=に変更する必要があります。

他に重大な違法な構文問題があるようです。

+0

はい、私はちょうど各ステートメントのデータを取得しません。 – JackTheJack

+0

@ JackTheJack:したがって、問題はXPathにはありません。まず、正しい形式のXML文書を持つようにデータを修正します。 –

+1

また、foreachとドキュメント全体の前にxpath *を行うことに注意する価値があると思います。そのようにすれば、ノードのリストを取得するxpath式と、それを反復するforeach式がより明確になります。デバッグも簡単です。 – hakre