我正在尝试解析 XML 并使用其子元素之一重命名原始 XML,特别是作为要覆盖的 XML 文件名的前缀。在下面的示例 XML 中,我想提取“to”元素并将其名称“Tove”插入到新编写的 XML 文件名中。如果原始文件名为“reminder.xml”,是否可以将名称“Tove”解析并插入到新写入的名为“Tove_reminder.xml”的文件中?这对 XML 可行吗?`<?xml version="1.0" encoding="ISO-8859-1"?>-<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>`似乎 Python 在提取其他文件格式的文本和字符串方面具有更大的灵活性,但我找不到与 XML 相关的很多内容。非常感谢任何帮助!
1 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
您可以使用 beautifulsoup4 提取 xml 文档的属性和内部文本。
首先,安装beautfulsoup4
pip install beautifulsoup4
然后,假设您在问题中编写的文本加载到名为 xml_text 的变量中,您可以执行以下操作
from bs4 import BeautifulSoup
file_name = "reminder.xml"
xml_file = open(file_name, 'r')
xml_text = xml_file.read()
xml_file.close()
soup = BeautifulSoup(xml_text, "html.parser")
要从标签中提取文本,您可以使用
to = soup.find("to")
name = to.text #contains Tove now
最后,您可以使用“名称”变量来保存文件
file_name = name + "_" + file_name
xml_file = open(file_name, "w")
xml_file.write(xml_text)
xml_file.close()
添加回答
举报
0/150
提交
取消