2016-03-01 151 views
-1

我在PHP中的Xpath函數有問題。我創建了simpleXML而不是運行xpath。然後我想運行它到xpath的結果,但只應用到第一個元素。但它仍然採用所有元素,例如沒有使用xpath。我還打印了數組如何處理第一個xpath,並且它採用了我想要的方式。任何人都可以幫忙嗎?PHP Xpath-從另一個元素中選擇元素

$elem = simplexml_load_file($fileIn); 

$xpathArg = "//".$arg['eFR']; 
$prem = $elem->xpath($xpathArg); 

$xpathArg2 = "//".$arg['eSE']; 
print_r($prem[0]->xpath($xpathArg2)); 
+1

請張貼有效XML的有效迷你片段。而你想要的是什麼。而你取而代之。和$ arg []的內容 - 一個完整的,自包含的代碼示例。專業問題=專業答案。 – michi

+0

[在SimpleXML對象上使用xPath返回重複數據的Foreach循環可能的重複](http://stackoverflow.com/questions/9652575/foreach-loop-with-xpath-on-simplexml-object-returning-duplicate-data) – har07

回答

0

/開頭的XPath是絕對路徑。您需要從上下文節點開始的路徑,否則上下文節點將被忽略。在第二個xpath查詢的開頭簡單地添加.將確保它從您指定的節點開始。

$elem = simplexml_load_file($fileIn); 

$xpathArg = "//".$arg['eFR']; 
$prem = $elem->xpath($xpathArg); 

$xpathArg2 = ".//".$arg['eSE']; 
print_r($prem[0]->xpath($xpathArg2));