【发布时间】:2012-03-05 20:14:45
【问题描述】:
我很喜欢在 Debian 4.1.1-21 下使用 py-dom-xpath 和 python 2.7.2。
一切都很好,而不是一个 XML 元素。
每当我尝试检查 XML 文档中的 xpath,如 //AAA/BBB/CCC-DDD 时,都找不到路径。它是唯一一个带有破折号- 的节点。我已经尝试过逃离破折号,但没有成功。
我还尝试了//*[name()='CCC-DDD'] 和starts-with 和contains 语句。该元素肯定在 XML 中,并且拼写也正确。
我尝试了online xpath validation site,它在那里完美无瑕,即使是破折号。
感谢任何帮助。
【问题讨论】:
-
你试试 lxml.etree 吗?这是一种高效且 Python 式的 xml 解析方式。
-
使用来自@unutbu、
'''<root><AAA><BBB><CCC-DDD>xyz</CCC-DDD></BBB></AAA></root>'''、Debian Wheezy 上的 Python 2.7.3 和 py-dom-xpath-0.1、xpath.findnode('//AAA/BBB/CCC-DDD', doc)的示例 XML 对我有用。您能提供您的 XML 输入文档吗? -
从你的问题开始:Debian 4?已经 4 年没有得到安全修复了……你应该认真考虑更新。
-
另外,如果这不起作用,则可能是 py-dom-xpath 中的错误(因为它是有效的 XML)。这也可能是某种编码问题。您能否提供一个小型示例数据集(SSCCE)?