我正在使用BeautifulSoup解析多个XML文档源,并且想要执行一些预处理以用自定义XML标记替换非标准CDATA
标记。为了说明:用BeautifulSoup中的标签替换CDATA NavigableStrings
下面的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.