【发布时间】:2011-12-07 14:21:30
【问题描述】:
"outline-style: none; margin: 0px; padding: 2px; background-color: #eff0f8; color: #3b3a39; font-family: Georgia,'Times New Roman',Times,serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 18px; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border: 1px solid #ebebeb; float: left;"
我有这个作为内联 css。我想用正则表达式替换所有以“背景”和“字体”开头的属性。在 inline css 中,最后一个属性可能没有分号作为结尾
我将此代码用作 django 过滤器,以使用漂亮的汤从服务器端删除这些属性
def html_remove_attrs(value):
soup = BeautifulSoup(value)
print "hi"
for tag in soup.findAll(True,{'style': re.compile(r'')}):
#tag.attrs = None
#for attr in tag.attrs:
# if "class" in attr:
# tag.attrs.remove(attr)
# if "style" in attr:
# tag.attrs.remove(attr)
for attr in tag.attrs:
if "style" in attr:
#remove the background and font properties
return soup
【问题讨论】:
-
您是在它上线之前还是在它到达客户端(javascript?)时这样做?
-
我必须从服务器端解析它..
-
您可能应该重新考虑使用“内联 css”来支持可重用的类。
-
我得到的内容是 TinyMCE 粘贴的 HTML,由其他一些网站的用户发布。我必须替换元素的 font* 和 background* 属性以使内容与我的 Web 主题兼容