Reputation: 1601
I was wondering if anyone knew how to add text to a tag (p, b -- any tag where you might want to include character data). The documentation mentions no where how you might do this.
Upvotes: 6
Views: 9607
Reputation: 304205
>>> import BeautifulSoup
>>> b=BeautifulSoup.BeautifulSoup("<p></p><p></p>")
>>> for t,s in zip(b,[u'hello',u'world']):
... t.contents.append(BeautifulSoup.NavigableString(s))
...
>>> b
<p>hello</p><p>world</p>
Upvotes: 1
Reputation: 7472
I'm not sure exactly if this is what you want, but maybe it's a start...
from BeautifulSoup import BeautifulSoup, NavigableString
html = "<p></p>"
soup = BeautifulSoup(html)
ptag = soup.find('p')
ptag.insert(0, NavigableString("new"))
print ptag
Outputs
<p>new</p>
The documentations shows a few more similar examples: http://www.crummy.com/software/BeautifulSoup/documentation.html#Modifying%20the%20Parse%20Tree
Upvotes: 8