The 65535 line number limit is no longer a problem when you use libxml 2.9 or higher, but you have to explicitly enable support for big line numbers:
<?php
define('XML_PARSE_BIG_LINES', 4194304);
$dom = new DOMDocument;
$dom->loadXML($xml, XML_PARSE_BIG_LINES);
?>
PHP.mk документација
DOMNode::getLineNo
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
domnode.getlineno.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
domnode.getlineno.php
DOMNode::getLineNo
Референца за `domnode.getlineno.php` со подобрена типографија и навигација.
DOMNode::getLineNo
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DOMNode::getLineNo — (PHP 5 >= 5.3.0, PHP 7, PHP 8)
Параметри
Оваа функција нема параметри.
Вратени вредности
Ги добива броевите на редовите за тоа каде е дефиниран јазолот во време на парсирање. 0.
Примери
Пример #1 Враќа број на редот каде што јазолот е дефиниран во време на парсирање. Ако јазолот е креиран рачно, вратената вредност ќе биде example
<?php
// XML dump for below example
$xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<root>
<node />
</root>
XML;
// Create a new DOMDocument instance
$dom = new DOMDocument;
// Load the XML
$dom->loadXML($xml);
// Print where the line where the 'node' element was defined in
printf('The <node> tag is defined on line %d', $dom->getElementsByTagName('node')->item(0)->getLineNo());
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
The <node> tag is defined in line 3
Белешки од корисници 3 белешки
DOMNode::getLineNo() ¶
12 години пред
ruud at vanmelick dot com ¶
пред 15 години
This function is buggy. It doesn't always return the correct line number, especially for text elements. As an alternative you can do something like this:
<?php
$text = $node->ownerDocument->saveXML($node);
$line += substr_count($text, "\n");
?>
You'll want to keep a reference to $line (starting at 0) and add to it as you parse over the document recursively.
In order for this to work you have to tell DOMDocument to preserve white space before loading the document.
Анонимен ¶
пред 13 години
The DOMNode::getLineNo() method doesn't work properly due to a libxml2 bug.
https://bugzilla.gnome.org/show_bug.cgi?id=676026