python - 在 xpath 中使用破折号在 py-dom-xpath 中不起作用

标签 python xml xpath

我目前正在使用 py-dom-xpath在 Debian 4.1.1-21 下使用 python 2.7.2。
一切都很好,而不是一个 XML 元素。

每当我尝试检查 XML 文档的 xpath 时,如 //AAA/BBB/CCC-DDD 找不到路径。它是唯一带有破折号 - 的节点。我已经尝试过逃避破折号,但那没有用。

我还尝试了 //*[name()='CCC-DDD']starts-withcontains 语句。该元素肯定在 XML 中,拼写也正确。

我尝试了 online xpath validation site ,即使有破折号,它也能完美地工作。

感谢任何帮助。

最佳答案

正在使用 lxml一个选项? XPath 中的破折号在那里工作得很好:

import lxml.etree as ET

content = '''<root><AAA><BBB><CCC-DDD>xyz</CCC-DDD></BBB></AAA></root>'''
doc = ET.fromstring(content)
print(doc.xpath('//AAA/BBB/CCC-DDD'))

产量

[<Element CCC-DDD at 0xb746f504>]

关于python - 在 xpath 中使用破折号在 py-dom-xpath 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9277270/

相关文章:

python - 通过node-red将Python连接到网页

python - 使用 Ipython 调用 pylab 的 GUI 请求无效

python - 按每个子列表的第一个元素对列表列表进行排序

python 网络浏览器

XML 到 XML 使用 XSL 转换来排序

java - 在Android中存储字符串和图像数据的最佳方式?

xpath - 在 Xpath 表达式中使用 count

Java:从 XML 文件重复读取的性能

c# - 如何根据 XAML 中定义的 XMLDataProvider 数据计算平均值

java - Selenium 非常相似的xpaths?