为了账号安全,请及时绑定邮箱和手机立即绑定

使用 XML 元素解析 XML 并重写文件名

使用 XML 元素解析 XML 并重写文件名

猛跑小猪 2022-10-18 17:04:06
我正在尝试解析 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()


查看完整回答
反对 回复 2022-10-18
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信