可能的重复:
php:如何从html标记中删除属性
如何迭代Beautiful Soup元素的HTML属性?
我有一些HTML,如下所示:
<div class="foo">
<p id="first">Hello, world!</p>
<p id="second">Stack Overflow</p>
</div>
它需要像这样回来:
<div>
<p>Hello, world!</p>
<p>Stack Overflow</p>
</div>
我更喜欢Python解决方案,因为我已经在需要使用的程序中使用了BeautifulSoup。但是,如果PHP是更好的解决方案,我对它持开放态度。我认为sed正则表达式是不够的,尤其是在将来可能使用<文本中的符号(我不控制输入(。
这也适用于sed,<([a-zA-Z!]+([^>]>>然后只替换为第一组,<'1>
这在Python中使用Lxml很容易实现。
首先安装Lxml并尝试以下代码:
from lxml.html import tostring, fromstring
html = '''
<div class="foo">
<p id="first">Hello, world!</p>
<p id="second">Stack Overflow</p>
</div>'''
htmlElement = fromstring(html)
for element in htmlElement.cssselect(''):
for key in element.keys():
element.attrib.pop(key)
result = tostring(htmlElement)
print result