downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

DOMNode::getNodePath> <DOMNode::cloneNode
[edit] Last updated: Fri, 17 May 2013

view this page in

DOMNode::getLineNo

(PHP 5 >= 5.3.0)

DOMNode::getLineNoGet line number for a node

Beschreibung

public int DOMNode::getLineNo ( void )

Gets line number for where the node is defined.

Parameter-Liste

Diese Funktion hat keine Parameter.

Rückgabewerte

Always returns the line number where the node was defined in.

Beispiele

Beispiel #1 DOMNode::getLineNo() 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());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The <node> tag is defined in line 3



add a note add a note User Contributed Notes DOMNode::getLineNo - [2 notes]
up
0
Anonymous
11 months ago
The DOMNode::getLineNo() method doesn't work properly due to a libxml2 bug.

https://bugzilla.gnome.org/show_bug.cgi?id=676026
up
0
luke dot NOREPLY at webconnex dot com
2 years ago
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.

 
show source | credits | sitemap | contact | advertising | mirror sites