我需要查詢xml文檔,然後顯示特定的標記值,例如,姓氏,姓氏,組(部門),job_title。使用XMLReader,DOM,Xpath獲取給定節點的標記名稱和值
我正在使用XMLReader,因爲我可能需要使用大型XML文件。我使用DomXPath來過濾數據,但我不知道如何檢索每個元素的nodeName和值。下面的代碼僅返回'member'作爲節點名稱?
任何幫助,將不勝感激。
<?php
$reader = new XMLReader();
$reader->open('include/staff.xml');
while ($reader->read()){
switch($reader->nodeType){
case(XMLREADER::ELEMENT):
if($reader->localName === 'staff'){
$node = $reader->expand();
$dom = new DomDocument();
$dom->formatOutput = true;
$n = $dom->importNode($node, true);
$dom->appendChild($n);
$xp = new DomXpath($dom);
$res = $xp->query("/staff/member[groups='HR']");
}
}
}
echo $res->item(0)->nodeName;
echo $res->item(0)->nodeValue;
?>
是將這些值不基於XMLReader的?我使用DOM和XPath,所以我想我需要使用DOM方法,例如$ res-> item(1) - > nodeValue;得到我的過濾結果。 嘗試了$ reader-> name ...無論如何沒有返回。 – rossjha 2010-03-04 11:53:02
這應該是XMLReader類的屬性。我想你應該在$ reader-> name下面看到一些東西。試試一些最簡單的例子。 – 2010-03-04 12:27:14
嗨,感謝您的幫助。我想我已經明白了。我的查詢是問題。一旦我掌握了xpath,我就能夠爲每個標籤返回nodeName和nodeValue。 – rossjha 2010-03-04 21:25:06