How to remove all attributes from element

非 Y 不嫁゛ 提交于 2019-12-01 19:36:15

问题


How to remove all attributes of the specific elements througout the document. I'm trying something like this:

from bs4 import UnicodeDammit
from lxml import html

content = open("source.html").read()
document = UnicodeDammit(content, is_html=True)
parser = html.HTMLParser(encoding=document.original_encoding)
root = html.document_fromstring(content, parser=parser)

for attr in root.xpath('.//table/@*'):
    del attr.attrib

Here I'm trying to delete all attributes from all tables in the document using xpath, but it doesn't work.


回答1:


This is one possible way, assuming that you want to remove all attributes of certain element, say table :

for table in root.xpath('//table[@*]'):
    table.attrib.clear()

The code above loop through all table that contains any attribute, then call clear() method of the elemet's attrib property, since the property is simply a python dictionary.



来源:https://stackoverflow.com/questions/34285348/how-to-remove-all-attributes-from-element

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!