python - 如何使用 BeautifulSoup 放置文本
问题描述
我正在解析一个.xml
文件。我需要转换为.csv
个人文件:names.txt
.
例如:
names.txt
:
anna
james
miray
vill
XML file:
<data>
<AAA>
<CCC>
<person>name1</person>
</CCC>
<CCC>
<person>name2</person>
</CCC>
<CCC>
<person>name3</person>
</CCC>
</AAA>
</data>
解决方案
你可以使用这个:
from bs4 import BeautifulSoup
example_string = '<data><AAA><CCC><person>name1</person></CCC><CCC><person>name2</person></CCC><CCC><person>name3</person></CCC></AAA></data>'
# Here I hard code the list of names. My assumption is you already know how
# to read the names from names.txt into a list.
names = ['anna', 'james', 'miray']
# Parse the XML into a BeautifulSoup
soup = BeautifulSoup(example_string, 'lxml-xml')
# Replace the content of each 'person' tag
for name, item in zip(names, soup.find_all('person')):
item.string = name
# Pretty-print the XML after modifications
print(soup.prettify())
这将具有以下输出:
<?xml version="1.0" encoding="utf-8"?>
<data>
<AAA>
<CCC>
<person>
anna
</person>
</CCC>
<CCC>
<person>
james
</person>
</CCC>
<CCC>
<person>
miray
</person>
</CCC>
</AAA>
</data>
推荐阅读
- android - 带和不带下划线变量视图绑定的目的
- java - 为外部存储库创建 Jacoco 报告
- typescript - Typescript 中是否有一种方法可以模拟在网站表单上按 Enter 时按下的 Tab 键?
- delphi - FileExists 后 RenameFile 中的访问被拒绝
- python - Raspberry Pi 使用 Python 根据 CPU 温度控制 LED
- image - 如何使用opencv将图像旋转到正常位置,如果它与正常成90、180或270度
- c# - Linq查询根据最近的总和选择记录
- python-3.x - 为 AD 用户安装 Python
- javascript - API返回JSON时发生错误,列表中的每个孩子都应该有一个唯一的“关键”道具
- asp.net-core - 如何在 .net core 3.1 中序列化非属性成员?