gpt4 book ai didi

python - 在动态树中使用minidom获取标签值

转载 作者:行者123 更新时间:2023-12-02 08:19:09 24 4
gpt4 key购买 nike

我有一个 xml 文件,在某些深层中每次都没有相同的标签。

例如,这是 xml 结构的一部分,其中 <openie>位于

root > document > sentences > sentence > openie

我想从 <text> 获取值每个标签 sentence

<openie>
<triple confidence="1.000">
<subject begin="1" end="2">
<text>customer</text>
<lemma>customer</lemma>
</subject>
<relation begin="2" end="3">
<text>enters</text>
<lemma>enter</lemma>
</relation>
<object begin="3" end="6">
<text>their order number</text>
<lemma>they order number</lemma>
</object>
</triple>
</openie>

我已经开始使用这种方法,但我陷入了 XML 具有不同标签的地方,即。 subject , relationobject 。以及每个 openie 中的结构可以改变,例如除了我提到的这三个标签之外还可以有一些其他标签,它也可以有 <text>标签。

from xml.dom import minidom

def parse_xml():
xmldoc = minidom.parse('./tmp/nlp_output.xml')
sentencesNode = xmldoc.getElementsByTagName('sentences')
for sentenceNode in sentencesNode:
for openIeNode in sentenceNode.childNodes:
for tripleNode in openIeNode.childNodes:
#what now?

最佳答案

根据您的问题需求,

  • 我想从每个句子的 < text > 标记中获取值?
<小时/>

无需保留trackdifferent tags或每次都是子节点。这是简单的解决方法:

from xml.dom import minidom
xml_doc = minidom.parse('./tmp/nlp_output.xml')

# To get Number of available tags, you want to search :
item_list = xml_doc.getElementsByTagName('text')
print("Number of text-tags:", len(item_list), '\n')

for text_Elem in item_list:
text_value = ''.join([node.data for node in text_Elem.childNodes])
print('Required Value:', text_value)

通过使用此技术,您将获得精确 tag value根据您的情况的需要。要详细了解 XML 解析,请访问引用:How-to-Parse-XML-in-Python .

<小时/>

这是给定 XML 文件的输出,即 nlp_output.xml ,

 - Number of text-tags: 3 

- Required Value: customer

- Required Value: enters

- Required Value: their order number

关于python - 在动态树中使用minidom获取标签值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58906171/

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