在PHP中从xml文件检索注释值

在PHP中从xml文件检索注释值,php,xml,Php,Xml,这是我的XML文件 <?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/"> <serial>PQE43A021640</serial> <!-- 3693 --> <serial>PQE43E015072</serial> <!--

这是我的XML文件

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">

<serial>PQE43A021640</serial>   <!--    3693    -->
<serial>PQE43E015072</serial>   <!--    3694    -->
<serial>PQE430015069</serial>   <!--    3695    -->
</rss>

PQE43A021640
PQE43E015072
PQE430015069
在上面的xml文件中,串行节点旁边有注释值

我用这个脚本得到了序列号

$xml=simplexml_load_file("note.xml");
foreach($xml as $val) { echo $val[0] . "<br>"; }
$xml=simplexml\u加载文件(“note.xml”);
foreach($xml作为$val){echo$val[0]。“
”;}
那个么我怎样才能得到序列号旁边的注释值呢? 而且我只想得到那个特定的行号?这3个应具有相同的行值:例如(行编号:4 |序列编号:PQE430015069 |计数编号:3693)

请帮助,

$doc=新文档;
$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++;
}
$doc->loadXML('KLH4587KIJMHF4557PDS'); $xpath=新的DOMXPath($doc); $lineNo=0; foreach($xpath->query('//serial/following::comment()')作为$comment){ $serial=$xpath->query('//serial',$comment)->item($lineNo)->textContent; 变量转储(“行号:“.$lineNo.”序列号:“.$Serial.”编码:“.$comment->textContent”); $lineNo++; }
如果你坚持使用SimpleXML,我怀疑你能做到。(你应该问问自己,为什么注释一开始就那么重要?如果内容重要,它应该在注释之外的任何地方。)你能使用DOMxml吗?我已经尝试了很多次,但都失败了,你能高兴吗?文档几乎可以做任何事情。但需要对DOM的工作原理有一些了解。(PHP的实现基本上符合W3CDOM规范。)嗨,我试过这个,你能用这个吗$doc=新文档$文档->加载XML('1SE43A021640 1SE43E015072 1SE430015069')$xpath=新的DOMXPath($doc);foreach($xpath->query('//comment()')as$comment){echo$comment->textContent;}Nope。首先,XML文档只有一个根元素。你的代码有三个。在它们周围环绕一个元素。