我在.Net项目中使用AntiSamy。我想保留<span>
标签的样式属性,原封不动。我尝试修改政策,但我做了什么,我得到了相同的结果......从这个:
<p><span style="font-size:10px"><span style="font-family:arial">Name here<br />
对此:
<p><span style=""><span style="">Name here<br />
查看政策文件后,我在那里看到了这条评论:
<!-- the "style" attribute will be validated by an inline stylesheet scanner, so no need to define anything here - i hate having to special case this but no other choice -->
我在这里有一些问题......
政策xml文件中的注释行是什么意思?
我是否必须对<common-attributes>
中的style属性进行更改,或者这不会触及<span>
标记中的样式属性?
我是否必须仅在<tag name="span" action="validate"/>
<tag-rules>
下的样式属性内容中进行更改?
提前谢谢。
答案 0 :(得分:1)
&#34;风格&#34;属性是AntiSamy中的一个特例(因为style属性的值由属性 - 值对列表组成)。
style="font-size:10px; color:red;"
样式属性的值由特殊扫描仪内联样式表扫描程序扫描。对于其他标记属性,此验证并不简单,因为&#34; style&#34;中的每个属性都是如此。本身应遵循一些规则。必须为这些规则定义一个部分例如,
<css-rules>
<property name="font-size" >
<category-list>
<category value="visual" />
</category-list>
<literal-list>
<literal value="inherit" />
</literal-list>
<regexp-list>
<regexp name="length" />
</regexp-list>
</property>
</css-rules>
将根据css-rules中定义的规则验证css属性font-size。这里正则表达式长度在公共正则表达式部分中定义为
<regexp name="length"
value="((-|\+)?0|(-|\+)?([0-9]+(\.[0-9]+)?)(em|ex|px|in|cm|mm|pt|pc))" />
common-attributes或tag-rules部分没有变化。