我有一个使用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
答案 0 :(得分:2)
$element->getLineNo()
将返回开始标记的行号。注意:对于打开跨越多行的标记,它将返回开始标记的结尾。它似乎不适用于DOMText节点(返回0)。
答案 1 :(得分:1)
你不能用PHP的DOM类真正做到这一点。 DOM Level 3 added support for this,但我们还没有在PHP中支持DOM 3级。