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)
また、 BeautifulSoupreplaceWith()
メソッドを使用して結果のそれぞれに適用するいくつかの異なるアプローチも試しましたNavigableString
。私が試みた結果、置換が行われないか、再帰ループのように見えます。
以前の試みを投稿できてうれしいですが、ここでの問題が非常に単純であることを考えると、BeautifulSoup 3を使用して上記の検索と置換を達成する方法の明確な例を誰かが投稿できることを願っています.