このサンプルXMLファイルを使用して、PythonからXPathクエリを実行する方法を学習しようとしています。http://pastie.org/1333021実際のアプリケーションで使用されているため、名前空間を追加しました。Python libxml2 XPath/Namespace Help
基本的に、私はこれが最初にすべての<food>
のノードを見つけるために私のコードです(この例よりもはるかに大きな規模で)
をノードのサブセットを返します。トップレベルのクエリを実行して、サブセットを照会したいですそれぞれの説明を繰り返します。
#!/usr/bin/python2
import libxml2
doc = libxml2.parseFile("simple.xml")
context = doc.xpathNewContext()
context.xpathRegisterNs("db", "http://examplenamespace.com")
res = context.xpathEval("//db:food")
for node in res:
# Query xmlNode here
print "Got Food Node:"
desc = node.xpathEval('db:description') # this is wrong?
print desc
だから、私は、XMLファイルからxlns
属性を削除し、db:
せずにただ基本的なXPathクエリを使用している場合、それは正常に動作し、基本的に名前空間の問題です。先頭のクエリ//db:food
はうまく動作しますが、2番目のクエリは評価に失敗します。
私の名前空間/クエリの構文を修正できますか?私は通常のlibxml2を使用していない
どうもありがとう
おかげで非常に多く、私は私が変わる状況に混乱していたと思います:) – Jason