xmlドキュメントをクエリしてから、特定のタグ値(forename、surname、group(dept)、job_titleなど)を表示する必要があります。
大きなXMLファイルを処理する必要がある場合があるため、XMLReaderを使用しています。DomXPathを使用してデータをフィルタリングしていますが、各要素のnodeNameとvalueを取得する方法がわかりません。以下のコードは、ノード名として「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;
?>