gpt4 book ai didi

python - 如何在 python 中过滤 XML 文件中的值

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

我对 XML 和 python 有基本的了解,并且一直在使用 minidom 并取得了一些成功。我遇到过无法从 XML 文件中获取所需值的情况。这是预先存在的文件的基本结构。

<localization>
<b n="Stats">
<l k="SomeStat1">
<v>10</v>
</l>
<l k="SomeStat2">
<v>6</v>
</l>
</b>
<b n="Levels">
<l k="Level1">
<v>Beginner Level</v>
</l>
<l k="Level2">
<v>Intermediate Level</v>
</l>
</b>
</localization>

大约有 15 个不同的 <b>有几十个 child 的标签。我想做的是,如果给定级别编号 (1),则找到 <v>相应级别的节点。我只是不知道该怎么做。

最佳答案

您可能会考虑使用 XPATH,这是一种用于寻址 xml 文档各部分的语言。

这是使用 lxml.etree 的答案,它支持 xpath

>>> data = """
... <localization>
... <b n="Stats">
... <l k="SomeStat1">
... <v>10</v>
... </l>
... <l k="SomeStat2">
... <v>6</v>
... </l>
... </b>
... <b n="Levels">
... <l k="Level1">
... <v>Beginner Level</v>
... </l>
... <l k="Level2">
... <v>Intermediate Level</v>
... </l>
... </b>
... </localization>
... """
>>>
>>> from lxml import etree
>>>
>>> xmldata = etree.XML(data)
>>> xmldata.xpath('/localization/b[@n="Levels"]/l[@k=$level]/v/text()',level='Level1')
['Beginner Level']

关于python - 如何在 python 中过滤 XML 文件中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2286633/

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