gpt4 book ai didi

python - 将带有元素树的元素插入到现有的 xml 中

转载 作者:太空宇宙 更新时间:2023-11-03 16:15:14 25 4
gpt4 key购买 nike

我正在尝试找到使用元素树向这些项目条目添加元素的最简单方法。

我将以下 XML 输出存储在 (xmldata) 中。我还不想将其写入文件,我只需要添加 id,以便通过将其与其他数据中相应的 id 相关联来进一步使用该数据。

你看到的地方

     <archived type="bool">False</archived>

就在我想添加的上面

     <id>555666</id>

列表中的所有项目(所有项目的 ID 相同)

        <?xml version="1.0" encoding="UTF-8" ?>
<root>
<tasks type="list">
<item type="dict">
<archived type="bool">False</archived>
<budget_spent type="float">0.0</budget_spent>
<billable_hours type="float">0.0</billable_hours>
<billable type="bool">True</billable>
<billable_amount type="float">0.0</billable_amount>
<budget_left type="null"/>
<over_budget_percentage type="null"/>
<task_id type="int">6356</task_id>
<detailed_report_url type="str">/reports/detailed/</detailed_report_url>
<name type="str">Planning</name>
<internal_cost type="float">0.0</internal_cost>
<budget type="null"/>
<budget_spent_percentage type="null"/>
<total_hours type="float">0.0</total_hours>
<over_budget type="null"/>
<billed_rate type="float">0.0</billed_rate>
</item>
<item type="dict">
<archived type="bool">False</archived>
<budget_spent type="float">0.0</budget_spent>
<billable_hours type="float">0.0</billable_hours>
<billable type="bool">True</billable>
<billable_amount type="float">0.0</billable_amount>
<budget_left type="null"/>
<over_budget_percentage type="null"/>
<task_id type="int">6357</task_id>
<detailed_report_url type="str">/detailed/123</detailed_report_url>
<name type="str">Planning</name>
<internal_cost type="float">0.0</internal_cost>
<budget type="null"/>
<budget_spent_percentage type="null"/>
<total_hours type="float">0.0</total_hours>
<over_budget type="null"/>
<billed_rate type="float">0.0</billed_rate>
</item>
</tasks>

**** 更新****

根据 DAXaholic 的回答,我添加了以下内容:

     tree = ET.fromstring(xmldata)
for item in tree.iterfind('tasks/item'):
idtag = ET.Element('id')
idtag.text = '555666'
item.insert(0, idtag)

不知道如何完成此操作,因此我可以使用更新的数据。

最佳答案

像这样的东西应该会给你这个想法

root = ET.fromstring(xmldata)
for item in root.iterfind('tasks/item'):
idtag = ET.Element('id')
idtag.text = '555666'
item.insert(0, idtag)
xmldata = ET.tostring(root, encoding="unicode")

关于python - 将带有元素树的元素插入到现有的 xml 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38992981/

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