XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Execute an XPath and get the line numbers

Hello,

I'm investigating the structure of an XML file. The best tool is an usual
text editor (vim), but I need to look at some specific tags in some
specific contexts.

The idea is to execute an XPath and somehow to get to the location in the
editor. Remembering that I saw something interesting while playing with
libxml internals, I re-checked... And bingo! I've written a script which
executes an XPath and prints the result together with the line number in
the source XML file.

Usage:

python xpath.py document xpath

Code:

<xpath.py>
import sys,libxml2

doc_name = sys.argv[1]
xpath    = sys.argv[2]

doc  = libxml2.parseFile(doc_name)
ctxt = doc.xpathNewContext()
res  = ctxt.xpathEval(xpath)
for node in res:
  print node.lineNo()
  print node

doc.freeDoc()
ctxt.xpathFreeContext()
del ctxt
del doc
</xpath.py>

I think many will find this code useful. If you want bookmark it, here is
the permanent address:

http://uucode.com/blog/2007/03/05/execute-an-xpath-and-get-the-line-numbers/


-- 
Oleg Parashchenko  olpa@ http://xmlhack.ru/  XML news in Russian
http://uucode.com/blog/  Generative Programming, XML, TeX, Scheme
http://olpa.livejournal.com/


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS