Proszę rozważyć następującą sesji Pythona:find() po replaceWith() nie działa (używając 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>
Uwaga brakującą moc s.find ("I") po wierszu 4!
Jaki jest tego powód? Czy jest w pobliżu praca?
EDIT: Faktycznie, przykład nie wykazują USECASE, czyli:
myi.replaceWith(BeautifulSoup("wa<b>s</b>"))
Ilekroć włożona część zawiera sobie nietrywialne kod HTML, nie widzę w jaki sposób można zastąpić tę składnię z czymś jeszcze. Wystarczy zamienić specjalne znaki html na encje, zastępując je specjalnymi znacznikami.
Dlaczego musisz zastąpić 'sometag.renderContents()' zamiast po prostu zastąpić 'someTag'? – BrenBarn
Okay, bądźmy bardziej konkretni, dodając inny przykład ... (patrz wyżej, ponownie zredagowałem) – thomas