2011-12-29 77 views
0

XML文件可以看到下面:的SimpleXML的XPath

我如何可以編寫它,因此產品並提供數據顯示在順序。

目前我已經嘗試下面的代碼:

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

    print $product->name; 
} 

然而,這並不顯示任何數據。

感謝,

傑克

+0

哪種訂單?哪個XML元素代表一個產品以及哪個產品? - 到目前爲止您嘗試了什麼,請添加您的代碼並顯示xpath中哪些部分存在特定問題。 – hakre 2011-12-29 19:00:17

+0

它也可以以任何順序。 – JackTheJack 2011-12-29 19:02:00

+0

我曾嘗試: 的foreach($ XML-> GeneralSearchResponse->分類 - >類別 - >物品─>的XPath( '/產品| /報價')爲$產品) { \t打印$產品 - >名稱; } – JackTheJack 2011-12-29 19:03:01

回答

1

的XML通過提供的鏈接指向的是沒有很好地形成。很可能你會得到一個XML解析錯誤。

更具體而言,任何&somename=必須更改爲&somename=

似乎還有其他嚴重的非法語法問題。

+0

是的,我只是沒有從每條語句中獲取數據。 – JackTheJack 2011-12-29 19:12:14

+0

@JackTheJack:因此,問題根本不在於XPath。首先,糾正數據,以便您有一個格式良好的XML文檔。 – 2011-12-29 19:17:04

+1

此外,我認爲值得注意的是在* foreach和整個文檔之前執行xpath *。這樣的責任更清楚:xpath表達式獲取節點列表,foreach遍歷它。調試也變得更容易。 – hakre 2011-12-29 19:45:53