使用Beautifulsoup解析时维护XML文件的缩进

2024-10-16 17:21:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用BS4解析一个XML文件,并尝试将其写回一个新的XML文件。在

输入文件:

<tag1>
  <tag2 attr1="a1"> example text </tag2>
  <tag3>
    <tag4 attr2="a2"> example text </tag4>
    <tag5>
      <tag6 attr3="a3"> example text </tag6>
    </tag5>
  </tag3>
</tag1>

脚本:

^{pr2}$

输出:

<tag1>
<tag2 attr1="a1"> example text </tag2>
<tag3>
<tag4 attr2="a2"> example text </tag4>
<tag5>
<tag6 attr3="a3"> example text </tag6>
</tag5>
</tag3>
</tag1>

我想保留输入文件的缩进。我试着用漂亮的选项。在

输出美化:

<tag1>
  <tag2 attr1="a1"> 
    example text 
  </tag2>
  <tag3>
    <tag4 attr2="a2"> 
      example text 
    </tag4>
    <tag5>
      <tag6 attr3="a3"> 
        example text 
      </tag6>
    </tag5>
   </tag3>
</tag1>

但这不是我想要的。我想保持精确的压痕 在输入文件中。在


Tags: 文件texta2examplea1a3attr1tag1
1条回答
网友
1楼 · 发布于 2024-10-16 17:21:00

不幸的是你不能直接去。BeautifulSoup解析其输入,并且不保留原始格式的痕迹。在

因此,如果不修改XML,可以首先在内存中将其作为一个完整的字符串读取,然后将该字符串输入BS进行解析和测试,然后使用它写回新文件。在

如果要修改XML并使用特殊格式,则必须在BS树中导航并手动格式化它。在

相关问题 更多 >