我是編程新手,因此可能缺乏某些基礎知識。使用Python和libxml2根據xml中的標籤屬性匹配兄弟012
我有一個xml:
<mother>
<daughter nr='1' state='nice' name='Ada'>
<daughter nr='2' state='naughty' name='Beta'>
<daughter nr='3' state='nice' name='Cecilia'>
<daughter nr='4' state='neither' name='Dora'>
<daughter nr='5' state='naughty' name='Elis'>
</mother>
我需要的是根據自己的號碼(尼斯和她最接近的頑皮一個)來匹配調皮和漂亮的女兒和打印對:
Ada Beta
Cecilia Elis
我的代碼:
import libxml2, sys
doc = libxml2.parseFile("file.xml")
tree = doc.xpathNewContext()
nice = tree.xpathEval("//daugter[@state='nice']")
for l in nice:
print l.prop("name")
nice_nr = []
for n in nice:
nice_nr.append(n.prop("nr"))
# and the same for the naugty daugters
doc.freeDoc()
所以我能夠得到他們的屬性值,但我不能弄清楚如何製作它們。
我能找到的是Xpath的'follow-sibling'軸,但是從所有可以找到的例子我都不確定它是否可以在這裏使用。語法相當不同,它需要以下所有的兄弟姐妹。 任何幫助表示讚賞。
好問題,+1。查看我的答案,獲取完整,簡短且容易的XPath解決方案。 :) – 2011-03-13 02:34:38