python/xpath question..

John Krukoff jkrukoff at ltgc.com
Wed Sep 3 18:14:48 EDT 2008


On Wed, 2008-09-03 at 13:36 -0700, bruce wrote:
> morning....
> 
> i apologize up front as this is really more of an xpath question..
> 
> in my python, i'm using the xpath function to iterate/parse some html. i can
> do something like
> 
> s=d.xpath("//tr/td/text()")
> count=len(s)
> 
> and get the number of nodes that have text
> 
> i can then do something like
> s=d.xpath("//tr/td")
> count2=len(s)
> 
> and get the number of total nodes...
> by subtracting, i can get the number of nodes, without text.. is there an
> easier way??!!
> count2-count
> 
> ie, if i have something like
> <tr>
> <td></td>
> <td>foo</td>
> </tr>
> 
> is there a way to get the count that there is a single "td" node with
> text()=""
> 
> thanks
> 
> 
> --
> http://mail.python.org/mailman/listinfo/python-list

Well, you could just do the test (and the count!) in the xpath
expression:

count( //tr/td[ text() != "" ] )

It sounds like you're not familiar with xpath? I would recommend the
O'Reilly XSLT book, it has an excellent introduction to xpath in chapter
3.
-- 
John Krukoff <jkrukoff at ltgc.com>
Land Title Guarantee Company




More information about the Python-list mailing list