Php 从XML中搜索特定节点值
这是我的PHP/XML代码。我只想从以下位置搜索特定的Php 从XML中搜索特定节点值,php,xml,xpath,domdocument,Php,Xml,Xpath,Domdocument,这是我的PHP/XML代码。我只想从以下位置搜索特定的$searchterm: $doc = new DOMDocument; $doc->load('authentication.xml'); $xpath = new DOMXPath($doc); $searchTerm = "N0A097016646"; $lineNo = 0; foreach ($xpath->query('//device/following::comment()') as $comment){
$searchterm
:
$doc = new DOMDocument;
$doc->load('authentication.xml');
$xpath = new DOMXPath($doc);
$searchTerm = "N0A097016646";
$lineNo = 0;
foreach ($xpath->query('//device/following::comment()') as $comment){
$serial= $xpath->query('//device', $comment)->item($lineNo)->textContent;
echo "Line number: ".$comment->getLineNo()." Device number: ".$serial." Comented number: ".$comment->textContent."<br>";
$lineNo++;
}
$doc=新文档;
$doc->load('authentication.xml');
$xpath=新的DOMXPath($doc);
$searchTerm=“N0A097016646”;
$lineNo=0;
foreach($xpath->query('//device/following::comment()')作为$comment){
$serial=$xpath->query('//device',$comment)->item($lineNo)->textContent;
回显“行号:.$comment->getLineNo()”设备号:.$serial.。回显编号:.$comment->textContent.
”;
$lineNo++;
}
我应该将
$searchTerm
变量放在哪里来搜索特定节点?您的问题是,您没有使用$searchTerm
与=
(相等)一起使用
代码:
$searchTerm=“N0A097016646”;
foreach($xpath->query(//device[text()='$searchTerm']/following::comment())作为$comment){
回显“行号:”.$comment->getLineNo()。
“。
设备编号:“.$searchTerm.
”。
“输入号码:”.$comment->textContent.“
”;
}
在xpath查询中使用
$searchTerm
,但不使用它。关于contains()
的研究我尝试过,但没有成功:$serial=$xpath->query(“//device[contains(“$searchTerm.”)”,$comment)->item($lineNo)->textContent;您是否有可以使用的示例xml?很难猜到这个endHi,是的,而且我不需要使用$lineNo变量。但是当我删除时,它会显示一些错误。我可以使用getLineNo()函数获取行号,这是我的示例xml文件J0A0AM049303 H0A0AG014628 N0A097016646 Hi,但根据$searchTerm,我只需要1个结果;但这再次显示了一切。请帮助解决此问题这是我的xml:;J0A0AM049303 H0A0AG014628 N0A097016646@user3619039当然我很高兴helped@user3619039如果这是用户输入,也要小心xpath注入
text() = '$searchTerm'
$searchTerm = "N0A097016646";
foreach ($xpath->query("//device[text() = '$searchTerm']/following::comment()") as $comment){
echo "Line number: ".$comment->getLineNo(). '<br/>'.
" Device number: ".$searchTerm.'<br/>'.
" Comented number: ". $comment->textContent."<hr>";
}