gpt4 book ai didi

Python minidom 从 XML 中提取文本

转载 作者:行者123 更新时间:2023-12-01 02:37:28 25 4
gpt4 key购买 nike

这里是Python初学者。我正在尝试使用 minidom 解析 XML 文件的结构。 XML结构如下:

...
<Node Precode="1">
<Text Id="9">sometext 1</Text>
</Node>
...

我正在尝试使用递归函数将所有节点元素添加到列表中(不是我自己设计的,在 stackoverflow 上找到并适应我的需要)。目前的状态是这样的:

from xml.dom import minidom
list_to_write=[]
def parse_node(root):
if root.childNodes:
for node in root.childNodes:
if node.nodeType == node.ELEMENT_NODE:
new_node = [node.tagName,node.parentNode.tagName,node.getAttribute('Precode'),node.attributes.items()]

list_to_write.append(new_node)

parse_node(node)
return list_to_write

如何提取“sometext”文本并将其作为元素添加到 list_to_write 列表中?

最佳答案

我假设你有一个nodes.xml:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<Node >
<Text Id="9">sometext 1</Text>
</Node>
<Node >
<Text Id="9">sometext 2</Text>
</Node>
<Node >
<Text Id="9">sometext 3</Text>
</Node>
<Node >
<Text Id="9">sometext 4</Text>
</Node>
<Node >
<Text Id="9">sometext 5</Text>
</Node>
<Node>
<Text Id="9">sometext 6</Text>
</Node>
<Node >
<Text Id="9">sometext 7</Text>
</Node>
</root>

您可以使用以下代码来获取文本:

from xml.dom import minidom

list_to_write=[]
def parse_node():
doc = minidom.parse("nodes.xml")
root = doc.documentElement

nodes = root.getElementsByTagName("Node")
print doc
for node in nodes:
list_to_write.append(node.getElementsByTagName("Text")[0].childNodes[0].nodeValue)

parse_node()

print (list_to_write)

结果是:

[u'sometext 1', u'sometext 2', u'sometext 3', u'sometext 4', u'sometext 5', u'sometext 6', u'sometext 7']

关于Python minidom 从 XML 中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46068991/

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