我有 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/