我正在嘗試搜索XML文件並返回與給定條件匹配的記錄的所有數據。這裏是我現在的東西,它的搜索很好,但我似乎無法弄清楚如何獲得同一記錄中的其他屬性的值。從DOMXPath查詢結果中獲取屬性值?
下面是XML文件的樣本將用於:
<routing>
<route>
<url>/homepage</url>
<file>/pages/home.php</file>
</route>
</routing>
這裏是我如何找到文件中的特定記錄或記錄。它可以很好地發現它們,但是如何從匹配的記錄中獲取數據?
$qExp = '//route[url="/homepage"]';
foreach($inst->query($qExp) as $key=>$node) {
print_r($node);
// echo $node->file->nodeValue;
// how would I do this? I can't seem to
// access specific attributes at all
// inside of the DOMXPath class
}
一個DOMXPath對象將被存儲在$node
,但我怎麼能使用DOMXPath
對象來獲取其他屬性值?例如,第一個XML記錄將由此查詢返回,但是如何特別獲取file
屬性的值?我知道有一個nodeValue
函數可用,但它將所有字段的值一起返回,我無法排序哪些部分屬於哪個字段。
在此先感謝您的幫助,這確實是在煩擾我。
也許你困惑,因爲你混的條款? 'file'不是*屬性,而是一個元素。您可以按照[從PHP中的DOMElement獲取特定子標記]中概述的方式正常訪問它(http://stackoverflow.com/questions/3816806/get-a-specific-child-tag-from-a-domelement-in- PHP)。另外,猜測出的'$ node-> file-> nodeValue'是兩種不同類型的遍歷的混合體:First SimpleXML和DOM。 – hakre 2013-04-06 11:45:14
你有一個小錯誤是說'$ node'是一個'DOMXPath',但它是'DOMNode'。 – hakre 2013-04-06 11:49:32