gpt4 book ai didi

python - 使用 minidom 从 XML 节点中提取文本

转载 作者:数据小太阳 更新时间:2023-10-29 02:31:30 25 4
gpt4 key购买 nike

我浏览了几篇文章,但没有找到任何解决我问题的答案。

示例 XML =

<TextWithNodes>
<Node id="0"/>TEXT1<Node id="19"/>TEXT2 <Node id="20"/>TEXT3<Node id="212"/>
</TextWithNodes>

所以我知道通常如果我将 TextWithNodes 提取为 NodeList 我会做类似的事情

nodeList = TextWithNodes[0].getElementsByTagName('Node')
for a in nodeList:
node = a.nodeValue
print node

我得到的只是。我读到你必须写 a.childNodes.nodeValue 但节点列表中没有子节点,因为它看起来像所有 Node ID 都是结束标签?如果我使用 a.childNodes,我会得到 []

当我得到 a 的节点类型时,它是类型 1 和 TEXT_NODE = 3。我不确定这是否有用。

我想提取TEXT1TEXT2

最佳答案

来自文档的lxml解决方案:

from lxml import etree
from StringIO import StringIO

xml = etree.parse(StringIO('''<TextWithNodes>
<Node id="0"/>TEXT1<Node id="19"/>TEXT2 <Node id="20"/>TEXT3<Node id="212"/></TextWithNodes>'''))

xml.xpath("//text()")
Out[43]: ['\n', 'TEXT1', 'TEXT2 ', 'TEXT3']

您还可以提取特定节点的文本:

xml.find(".//Node[@id='19']").text

这里的问题是 XML 中的文本不属于任何节点。

关于python - 使用 minidom 从 XML 节点中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122736/

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