Функции PHP DOM читают номер строки из входного файла - PullRequest
1 голос
/ 19 мая 2009

У меня есть программа, которая читает файл XML с использованием функций 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 ]

2 голосов
/ 25 марта 2010

$element->getLineNo() вернет номер строки открывающего тега. Примечание: для открывающих тегов, которые занимают более одной строки, возвращается конец открывающего тега. Кажется, он не работает для узлов DOMText (возвращает 0).

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

1 голос
/ 19 мая 2009

Вы не можете сделать это с классом PHP DOM. DOM Level 3 добавил поддержку для этого , но у нас пока нет поддержки DOM level 3 в PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...