2015-07-03 73 views
1

我正在向HTML中的现有字符串添加文本。添加文本后添加换行符到HTML

added = soup.find(text=re.compile('Summary|Experience')) 
added.insert(0, NavigableString(code)) 

我想在插入文本后添加一个换行符,以便每个字符串位于不同的行上。

我想:

added.insert(0, NavigableString(code)+'<br/>') 

而过一些其他的变化...

感谢,

回答

2

您需要使用.new_tag方法来创建你的<br>标签

演示

In [22]: from bs4 import BeautifulSoup 

In [23]: soup = BeautifulSoup("""<p>Experience</p><strong>Summary</strong>""") 

In [24]: newtg = soup.new_tag('br') 

In [25]: soup.insert(0, newtg) 

In [26]: soup 
Out[26]: <br/><html><body><p>Experience</p><strong>Summary</strong></body></html> 
+0

感谢您的代码。这绝对是在经验/总结之前添加的一行。由于我也在体验之前和同一行中添加字符串(代码),我希望在(代码)之后和体验之前添加空间。我试图改变索引,但没有工作... – Diego

+0

@Diego你可以使用[insert_before或insert_after](http://www.crummy.com/software/BeautifulSoup/bs4/doc/#insert-before-and-insert -after)在东西之前或之后插入元素 – styvane

+0

谢谢你的建议,我该如何测试它?我收到错误消息...谢谢! – Diego