如何用Python将XML指定标签及其内容合并为单行并保留缩进?
XML指定标签多行转单行并保留缩进
我有一定Python开发经验,但XML相关知识匮乏。需要处理一个5万行的XML文件,要求将其中两个重复出现的指定标签及其内容从多行格式转换为单行,同时保留文件原有缩进。
示例
转换前:
<tag1> <day>1</day> <month>3</month> <year>2022</year> </tag1>
转换后:
<tag1><day>1</day><month>3</month><year>2022</year></tag1>
尝试过的方法
我尝试使用BeautifulSoup4,原本以为通过str(soup)可去除格式实现标签合并,但实际处理后内容仍保持多行,且丢失了原有缩进。想问下能否用BeautifulSoup4实现该需求,还是需要采用其他工具?
补充说明
BeautifulSoup4文档显示str(soup)可去除所有格式,但实际测试后发现它会移除所有行缩进且内容仍分行。测试代码如下:
with open("test.xml") as fp: soup = BeautifulSoup(fp, "xml") print(str(soup)) var = str(soup) print(var) f = open("write.xml", "w") f.write(str(soup)) f.close()
我找到过一个效果接近需求的处理示例,但希望能调整影响的标签范围,仅在需要的位置移除空白字符。
内容的提问来源于stack exchange,提问作者Erozim
相关产品推荐
相关产品推荐

