如果這個代碼:PHP XPath語法
$s = 'BrowseNodes/BrowseNode';
$temp_bnid=$item->xpath($s);
echo '<pre>
Root Search:
';
print_r($temp_bnid);
echo '</pre>';
die('Halted for testing');
給出了這樣的輸出:
Root Search:
Array
(
[0] => SimpleXMLElement Object
(
[BrowseNodeId] => 2522032011
[Name] => Balls
[Ancestors] => SimpleXMLElement Object
(
[BrowseNode] => SimpleXMLElement Object
(
[BrowseNodeId] => 196601011
[Name] => Baby & Toddler Toys
[Ancestors] => SimpleXMLElement Object
(
[BrowseNode] => SimpleXMLElement Object
(
[BrowseNodeId] => 165795011
[Name] => Categories
[IsCategoryRoot] => 1
[Ancestors] => SimpleXMLElement Object
(
[BrowseNode] => SimpleXMLElement Object
(
[BrowseNodeId] => 165793011
[Name] => Toys & Games
)
)
)
)
)
)
)
)
Halted for testing
和驗證碼:
$s = 'BrowseNodes/BrowseNode[Name=Categories]';
// I also tried $s = 'BrowseNodes/BrowseNode[Name="Categories"]';
$temp_bnid=$item->xpath($s);
echo '<pre>
Root Search:
';
print_r($temp_bnid);
echo '</pre>';
die('Halted for testing');
給出了這樣的輸出:
Root Search:
Array
(
)
Halted for testing
我在做什麼錯誤,當我試圖讓包含「Name」節點的「Name」節點值爲「Categories」的BrowseNode節點? 這個問題的另一種解決方案是選擇存在「IsCategoryRoot」節點的節點,但我真的想了解如何執行其他查詢,因爲它可能會在未來幫助我更多。 Niether的方式與我處理的查詢有關。
發佈你想搜索可能比SimpleXML的對象的轉儲更有幫助的XML。 – 2012-02-08 16:57:02
您能舉一個XML輸入樣本嗎?幫助你會更容易。但給我看到:也許名稱是一個屬性,如果是這樣,你可以嘗試:'BrowseNodes/BrowseNode [@ Name =「Categories」]'。 – 2012-02-08 17:00:57