直升机,
我有一个XML文件。我想做读评论值(100001)和行号。
PHP / Ajax自动完成需要,当我将序列号放在文本框中时,它应该在另外2个文本框中显示XML行号和注释值。
我不知道怎么做,如果有人可以提供帮助,我会非常尊重它。
<serial>KLH4587KIJ</serial> <!-- 100001 -->
<serial>MHF4557PDS</serial> <!-- 100002 -->
答案 0 :(得分:4)
使用下一个代码:
$doc = new DOMDocument;
$doc->loadXML('<serials><serial>KLH4587KIJ</serial><!-- 100001 --><serial>MHF4557PDS</serial><!-- 100002 --></serials>');
$xpath = new DOMXPath($doc);
foreach ($xpath->query('//comment()') as $comment){
var_dump($comment->textContent);
}
如您所见,您必须将serial
标记封装在父serials
您可以在此处查看:http://codepad.org/UoZvPxjl
修改。添加行号:
$doc = new DOMDocument;
$doc->loadXML('<serials><serial>KLH4587KIJ</serial><!-- 100001 --><serial>MHF4557PDS</serial><!-- 100002 --></serials>');
$xpath = new DOMXPath($doc);
$lineNo = 0;
foreach ($xpath->query('//serial/following::comment()') as $comment){
$serial= $xpath->query('//serial', $comment)->item($lineNo)->textContent;
var_dump ("Line number: ".$lineNo ." Serial number: ".$serial." Comented number: ".$comment->textContent);
$lineNo++;
}
您可以在此处查看此操作:http://codepad.org/4igoDzWN