PHP DOM函数从输入文件中读取行号

时间:2009-05-19 06:33:00

标签: php dom

我有一个使用DOM函数读取XML文件的程序:

$doc = new DOMDocument('1.0');
$doc->load("myFile.xml");

当我遍历本文档中的节点时,有没有办法告诉定义节点的输入文件的哪一行?

例如:

1: <!-- myFile.xml -->
2: <foobar>
3:     <foo>FOO</foo>
4:     <bar>BAR</bar>
5: </foobar>

和PHP:

$xp = new DOMXPath($doc);
$bars = $xp->query("//bar");
$myBar = $bars[0];
echo "The first <bar> element is on line " . performMagicHere(); // 4

2 个答案:

答案 0 :(得分:2)

$element->getLineNo()将返回开始标记的行号。注意:对于打开跨越多行的标记,它将返回开始标记的结尾。它似乎不适用于DOMText节点(返回0)。

http://us3.php.net/manual/en/domnode.getlineno.php

答案 1 :(得分:1)

你不能用PHP的DOM类真正做到这一点。 DOM Level 3 added support for this,但我们还没有在PHP中支持DOM 3级。