【发布时间】:2023-03-28 04:02:01
【问题描述】:
我正在使用 BeautifulSoup 解析几个 XML 文档提要,并希望进行一些预处理以将非标准的 CDATA 标记替换为自定义 XML 标记。举例说明:
以下 XML 源代码...
<title>The end of the world as we know it</title>
<category><![CDATA[Planking Dancing]]></category>
<pubDate><![CDATA[Sun, 16 Sep 2012 12:00:00 EDT]]></pubDate>
<dc:creator><![CDATA[Bart Simpson]]></dc:creator>
...会变成:
<title>The end of the world as we know it</title>
<category><myTag>Planking Dancing<myTag></category>
<pubDate><myTag>Sun, 16 Sep 2012 12:00:00 EDT<myTag></pubDate>
<dc:creator><myTag>Bart Simpson<myTag></dc:creator>
我认为以前没有在 SO 上问过这个问题(我尝试了几个不同的 SO 查询)。我还尝试了几种不同的方法,使用 .findAll('cdata', text=True) 并将 BeautifulSoup replaceWith() 方法应用于每个结果 NavigableString。我所做的尝试要么没有替换,要么看起来像一个递归循环。
我很高兴发布我之前的尝试,但鉴于这里的问题非常简单,我希望有人可以发布一个清晰的示例,说明如何使用 BeautifulSoup 3 完成上述搜索和替换。
【问题讨论】:
标签: python xml xml-parsing beautifulsoup cdata