は、次のPythonのセッションをご検討ください:のfind()replaceWith後の()(BeautifulSoupを使用して)動作しません
>>> 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行目の後に( "I")s.findの行方不明出力に注意してください!
この理由は何ですか?回避策はありますか?
EDIT:実際には、例があるユースケース、実証していません:挿入された部分は自明でないhtmlコード自体が含まれているときはいつでも
myi.replaceWith(BeautifulSoup("wa<b>s</b>"))
を、私はあなたが何かでこの構文を置き換えることができるかが表示されませんelse。ちょうど持っている
myi.replaceWith("wa<b>s</b>")
は、エンティティごとにhtml特殊文字を置き換えます。
'someTag'に置き換えるのではなく、' sometag.renderContents() 'と置き換える必要があるのはなぜですか? – BrenBarn
さて、別の例を追加して具体的にしてみましょう。(私はもう一度編集しました) – thomas