2009-05-19 33 views
1

我有一個程序使用DOM功能,用於讀取XML文件:PHP DOM函數從輸入文件中讀取一行數

$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

$element->getLineNo()將返回開始標籤的行號。注意:對於打開跨越多行的標籤,它將返回開始標籤的末尾。它似乎不適用於DOMText節點(返回0)。

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

+0

非常好!請注意,這僅適用於PHP 5.3.0+。 – nickf 2010-03-25 00:20:57

1

你不能真正做到這一點用PHP的DOM類。 DOM級別3 added support for this,但我們尚未在PHP中使用DOM級別3支持。