python - 在 Python 中使用 lxml 选择特定的 XML 节点

标签 python xml python-2.7

我有 VBScript 背景,对 Python lxml 很陌生。

在 VBScript 中,要选择特定节点,我只需执行以下操作:

设置 myNode = xmlDoc.selectSingleNode("/node1/node2/myNode")

我用Python做了什么:

from lxml import etree
xmlDoc = etree.parse(fileName)
myNode = 

问题:那么应该在 myNode 前面写什么才能选择它?

最好不使用 XPath?还考虑lxml

最佳答案

你可以使用类似的东西:

myNode = xmlDoc.find('node2/myNode')

etree.parse 函数将返回根节点(即您的node1),因此您不需要使用绝对路径。

示例

content = '''
<root>
<div>
  <p>content 1</p>
</div>
</root>
'''

from lxml import etree

xmlDoc = etree.fromstring(content)
paragraph_element = xmlDoc.find('div/p')
print(paragraph_element)

输出

<Element p at 0x9f54bc8>

注意: 在我的示例中,我使用了函数etree.fromstring。这纯粹是为了演示目的,因此您可以看到一个使用字符串的可行示例。函数 etree.parse 在处理文件而不是字符串时应该生成相同的结果。

旁白:为什么不使用 XPath?非常强大!

关于python - 在 Python 中使用 lxml 选择特定的 XML 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33419093/

相关文章:

android - relativelayout采用全屏,layout_height为="80dp"

c - 如何在Python代码中使用C中的函数,该函数将函数回调作为来自dll文件的参数?

python - 预建的 GVim 7.3。 +python 支持的二进制文件

xml - 使用 MD5/SHA1 比较 XML 实例

python - 在上部子图上显示 xtick 标签

c# - 基于xml文件生成C#对象?

python - scikit-learn 中的 TF/IDF

python-2.7 - 在python中的Twython异常中获取错误代码

python 脚本卡在 results = sparql.query().convert() 处

python - 如何使用 SELECT COUNT sql 生成一个 int