gpt4 book ai didi

python - 使用 python 提取完整的 XML block

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

是否可以使用 Python 从 XML 文件中提取完整的 XML 文本 block ?我正在使用 ElementTree 和 Python 从 XML 中提取标签和值,以便比较 2 个 XML 文件。但是是否可以提取 XML block 的整个文本?

例如:

<stats>
<player>
<name>Luca Toni</name>
<matches>47</matches>
<goals>16</goals>
<WC>yes</WC>
</player>
<player>
<name>Alberto Gilardino</name>
<matches>57</matches>
<goals>19</goals>
<WC>yes</WC>
</player>
<player>
<name>Mario Balotelli</name>
<matches>36</matches>
<goals>14</goals>
<WC>yes</WC>
</player>
</stats>

是否可以使用 python (ElementTree) 从上述 XML 中提取一个特定的完整 block (),如下所示?

<player>
<name>Luca Toni</name>
<matches>47</matches>
<goals>16</goals>
<WC>yes</WC>
</player>

最佳答案

一旦你用 etree 解析了你的文档,你可以做几件事

import xml.etree.ElementTree  as ET

doc = ET.parse('test.xml')
root = doc.getroot()

print(root.find("player")) # get first player
print(root.find(".//player")) # get first player if it's not a direct child
print([p for p in root.findall("player")]) # get all players (direct children)
print([p for p in root.getchildren()]) # get direct children

获取一个元素作为字符串只是

test = ET.tostring(root.find("player"))
print(text)

编辑 请注意,比较元素,这不一定是最好的方法。参见 here另一种选择。

关于python - 使用 python 提取完整的 XML block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53512410/

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