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

我正在尝试解析 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 相关的很多内容。非常感谢任何帮助!


猛跑小猪
浏览 113回答 1
1回答

ibeautiful

您可以使用 beautifulsoup4 提取 xml 文档的属性和内部文本。首先,安装beautfulsoup4pip install beautifulsoup4然后,假设您在问题中编写的文本加载到名为 xml_text 的变量中,您可以执行以下操作from bs4 import BeautifulSoupfile_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_namexml_file = open(file_name, "w")xml_file.write(xml_text)xml_file.close()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python