Я пытаюсь узнать, как выполнять запросы XPath из Python, используя этот пример XML-файла: http://pastie.org/1333021 Я просто добавил к нему пространство имен, потому что мое реальное приложение использует его.
По сути,Я хочу выполнить запрос верхнего уровня, который возвращает подмножество узлов, а затем запросить подмножество (в гораздо большем масштабе, чем этот пример)
Так что это мой код, чтобы сначала найти все узлы <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
Так что, по сути, это проблема пространства имен, если я удаляю атрибут xlns
из файла XML и использую только простые запросы XPATH без db:
, он работает нормально.Верхний запрос //db:food
работает нормально, но второй не дает оценки.
Пожалуйста, кто-нибудь может исправить мой синтаксис пространства имен / запроса.
Большое спасибо