gpt4 book ai didi

python - 使用 Python 在 XML 中的子树中使用相同的标签时获取唯一值

转载 作者:太空宇宙 更新时间:2023-11-04 01:42:05 25 4
gpt4 key购买 nike

我有如下 getElementText,它与 [0] 配合得很好,因为我正在处理的 XML 没有重复标记。

from xml.dom import minidom

def getElementText(element, tagName):
return str(element.getElementsByTagName(tagName)[0].firstChild.data)

doc = minidom.parse("/Users/smcho/Desktop/hello.xml")
outputTree = doc.getElementsByTagName("Output")[0]

print getElementText(outputTree, "Number")

但是,当我解析下面的 XML 时,我无法得到值 <Number>0</Number>但是<ConnectedTerminal><Number>1</Number></ConnectedTerminal>getElementText(outputTree, "Number") ,因为 getElementText 函数返回带有标签“Number”的两个元素中的第一个。

<Output>
<ConnectedTerminal>
<Node>5</Node>
<Number>1</Number>
</ConnectedTerminal>
<Type>int8</Type>
<Number>0</Number>
</Output>

这个问题有什么解决办法吗?有什么办法只得到 <Number>0</Number><ConnectedTerminal><Number>1</Number></ConnectedTerminal> .

最佳答案

如果lxml是一个选项(它比 minidomyou 好得多)可以做到:

from lxml import etree

doc = etree.fromstring(xml)

node = doc.find('Number')
print node.text # 0

node = doc.xpath('//ConnectedTerminal/Number')[0]
print node.text # 1

另见 xpath教程。

关于python - 使用 Python 在 XML 中的子树中使用相同的标签时获取唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3974464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com