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

search for in the

DOMNode::getNodePath> <DOMNode::cloneNode
[edit] Last updated: Fri, 25 May 2012

view this page in

DOMNode::getLineNo

(PHP 5 >= 5.3.0)

DOMNode::getLineNoLit le numéro de ligne d'un noeud

Description

public int DOMNode::getLineNo ( void )

Lit le numéro de ligne d'un noeud.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de ligne de définition du noeud.

Exemples

Exemple #1 Exemple avec DOMNode::getLineNo()

<?php
// XML de l'exemple
$xml = <<<XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
    <node />
</root>
XML;

// Création d'un objet DOMDocument
$dom = new DOMDocument;

// Chargement du XML
$dom->loadXML($xml);

// Affichage du numéro de ligne du noeud.
printf('Le noeud <node> est défini à la ligne %d'$dom->getElementsByTagName('node')->item(0)->getLineNo());
?>

L'exemple ci-dessus va afficher :

Le noeud <node> est défini à la ligne 3



add a note add a note User Contributed Notes DOMNode::getLineNo
Anonymous 19-May-2012 08:21
The DOMNode::getLineNo() method doesn't work properly due to a libxml2 bug.

https://bugzilla.gnome.org/show_bug.cgi?id=676026
luke dot NOREPLY at webconnex dot com 04-Mar-2011 11:28
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 | stats | sitemap | contact | advertising | mirror sites