次の python セッションを検討してください。
>>> from BeautifulSoup import BeautifulSoup
>>> s = BeautifulSoup("<p>This <i>is</i> a <i>test</i>.</p>"); myi = s.find("i")
>>> myi.replaceWith(BeautifulSoup("was"))
>>> s.find("i")
>>> s = BeautifulSoup("<p>This <i>is</i> a <i>test</i>.</p>"); myi = s.find("i")
>>> myi.replaceWith("was")
>>> s.find("i")
<i>test</i>
4 行目以降の s.find("i") の出力が欠落していることに注意してください。
これの理由は何ですか?回避策はありますか?
編集:実際には、この例はユースケースを示していません。
myi.replaceWith(BeautifulSoup("wa<b>s</b>"))
挿入された部分に重要な html コードが含まれている場合は常に、この構文を別のものに置き換える方法がわかりません。持っているだけで
myi.replaceWith("wa<b>s</b>")
html 特殊文字をエンティティに置き換えます。