0

我正在尝试获取lxml objectify在 python 中解析的 xml 文档并向其添加子元素。

问题是我无法弄清楚如何做到这一点。我发现的唯一真正的选择是用objectify.Elementand完全重建数据objectify.SubElement,但这......没有任何意义。

以 JSON 为例,我可以将数据作为对象导入并导航到任何部分并超级轻松地读取、添加和编辑数据。

如何解析 xml 文档objectify以便向其中添加子元素数据?

data.xml

<?xml version='1.0' encoding='UTF-8'?>
<data>
  <items>
    <item> text_1 </item>
    <item> text_2 </item>
  </items>
</data>

我确信有关于如何在线执行此操作的答案,但我的搜索术语要么不好,要么很愚蠢,但我找不到这个问题的解决方案。如果这是一个重复的问题,我很抱歉。

4

1 回答 1

0

我想解释这个问题相当困难,但这个问题基本上可以通过如何应用.Element和应用的模糊性来定义.SubElement

此参考包含可操作和可复制的方式,可以将数据appendadd数据写入已解析的 XML 文件。

解决关键问题:

如何在不重建整个树的情况下引用嵌套标签中的内容?

作者使用了find 功能,它被称为root.findall(./tag)

这允许人们找到nested tag他们想要的,而不必重建树。


这是他们使用的示例之一:

cost = ["$2000","$3000","$4000")
traveltime = ["3hrs", "8hrs", "15hrs"]
i = 0

for elm in root.findall("./country"):
    ET.SubElement(elm, "Holiday", attrib={"fight_cost": cost[i],
                                          "trip_duration": traveltime[i]})
    i += 1

此示例还回答了如何将数据动态添加到 XML 的问题?

他们通过在循环之外使用列表并通过它迭代来实现这一点i

本质上,此示例有助于解释如何在不重新制作整个树的情况下引用嵌套内容,以及如何将数据动态添加到 xml 树。

于 2021-05-31T09:34:56.303 回答