2010-03-27 14 views
3

En utilisant l'analyseur XML XMLReader dans PHP 5.3, j'ai besoin d'obtenir le numéro de ligne du nœud actuel. Un numéro de colonne ou un décalage total à partir du début du fichier serait bien aussi.En utilisant XMLReader de PHP, comment obtenir le numéro de ligne du nœud actuel?

Espérons que je ne dois pas utiliser un hack comme l'analyse syntaxique chaque chaîne de noeud brut pour les nouvelles lignes (avec readOuterXML()), mais je ne vois pas une propriété getLineNo() comme dans les DOM ...

Répondre

1

Voir XMLReader::expand qui retourne un élément DOMNode, qui soutient à son tour getLineNo()

+0

Cela fonctionne pour certains types de noeuds (XMLReader :: ELEMENT), mais donne des valeurs incorrectes pour d'autres (xmlreader :: END_ELEMENT) et pas du tout pour les autres (xmlreader :: PI, XMLREADER :: DOC_TYPE). J'ai vraiment besoin de quelque chose qui fonctionne pour tous les types de nœuds. – scotts