gpt4 book ai didi

python - 将子元素添加到具有相同标签的子元素的顶部

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

在现有的 XML 文件(播客提要)中,我尝试将一个元素添加到具有相同标签名称(项目)的顶部子元素。

现有的 XML feed 是:

<rss xmlns:ns0="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
<channel>
<item>
<title>Title2</title>
<\item>
<item>
<title>Title3</title>
<\item>
</channel>
</rss>

我使用的 python 将子元素添加到项目的底部。

import xml.etree.ElementTree as ET

parsed_feed=ET.parse('articles.xml')

root = parsed_feed.getroot()

def SubElementWithText(parent, tag, text, attrib):
element = ET.SubElement(parent, tag, attrib)
parent.append(element)
element.text = text
return element

channel = root.find('channel')
item = ET.SubElement(channel, 'item')
SubElementWithText(item, 'title', 'Title1', attrib={})

我希望看到的结果是:

<rss xmlns:ns0="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
<channel>
<item>
<title>Title1</title>
<\item>
<item>
<title>Title2</title>
<\item>
<item>
<title>Title3</title>
<\item>
</channel>
</rss>

最佳答案

关键是使用插入和元素(而不是子元素)。插入创建新的项目标签。然后用 find 和 xpath 找到它。从那里添加子元素。

import xml.etree.ElementTree as ET

parsed_feed=ET.parse('articles.xml')

root = parsed_feed.getroot()

def SubElementWithText(parent, tag, text, attrib):
element = ET.Element(tag, attrib)
parent.append(element)
element.text = text
return element

channel = root.find('channel')
element = ET.Element('item')
channel.insert(0,element)

item = root.find("./channel/item")

SubElementWithText(item, 'title', 'Title1', attrib={})

关于python - 将子元素添加到具有相同标签的子元素的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59516907/

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