← Prev in month ← Prev in thread
Next in thread → Next in month →

Execute an XPath and get the line numbers

From
Oleg A. Paraschenko <>
To
xml-dev <>
Date
2007-03-06T05:54:02Z
ID
<>
Thread
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/
← Prev in month ← Prev in thread
Next in thread → Next in month →