我正在尝试解析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相关的内容。如有任何帮助,我们不胜感激!
发布于 2020-04-22 22:19:09
您可以使用beautifulsoup4来提取文档的属性和内部文本。
首先,安装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最后,您可以使用"name“变量来保存文件
file_name = name + "_" + file_name
xml_file = open(file_name, "w")
xml_file.write(xml_text)
xml_file.close()https://stackoverflow.com/questions/61367184
复制相似问题