perche la seguente sessione di pitone:find() dopo ReplaceWith() non funziona (usando 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>
Si prega di notare l'uscita mancante di s.find ("i"), dopo la linea 4!
Qual è il motivo? C'è una soluzione?
EDIT: In realtà, l'esempio non dimostra il caso d'uso, che è:
myi.replaceWith(BeautifulSoup("wa<b>s</b>"))
Ogni volta che la parte inserita in sé contiene il codice html non banale, non vedo come si potrebbe sostituire questa sintassi con qualcosa altro. Il solo
myi.replaceWith("wa<b>s</b>")
sostituirà i caratteri speciali html per entità.
Perché è necessario sostituire con 'sometag.renderContents()' invece di sostituire con 'someTag'? – BrenBarn
Ok, siamo più concreti aggiungendo un altro esempio ... (vedi sopra, ho modificato di nuovo) – thomas