2015-06-10 67 views
2

我試圖在不刪除子女的情況下替換表單標籤。例如,我想將其轉換:使用BeautifulSoup更換標籤時保持孩子

<form> 
    <input type="text"/> 
    <input type="text"/> 
</form> 

要這樣:

<p> 
    <input type="text"/> 
    <input type="text"/> 
</p> 

而是我得到:

<p></p> 

這是我正在試圖做的是正確的現在:

from bs4 import BeautifulSoup 

content = '<form><input type="text"/><input type="text"/></form>' 
soup = BeautifulSoup(content) 

old_form = soup.find('form') 
new_form = soup.new_tag('p') 

old_form.replace_with(new_form) 
print soup 

在此先感謝 幫幫我!

回答

2

使用.name屬性適用於我:

from bs4 import BeautifulSoup 

content = '<form><input type="text"/><input type="text"/></form>' 
soup = BeautifulSoup(content) 

form = soup.find('form') 
form.name = 'p' 

print form.prettify() 
<p> 
<input type="text"/> 
<input type="text"/> 
</p> 
+1

這樣一個簡單的解決方案,謝謝! – NoahLE