我有一个包含大量富文本编辑内容blob的大型数据集,这些blob正在迁移到另一个系统。在允许HTML标签时,新系统比旧系统更严格,我们需要能够在迁移数据之前识别数据中的哪些标签将被切割或编码并以不良方式包含在内容中
所以例如给出这个HTML:
<h1>My page</h1><p>Lorem ipsum<marquee>SURPRISE!</marquee></p>
我们对“h1”和“p”标签(在某个地方的例外列表中列出)不感兴趣,但理想情况下我们希望能够看到“marquee”标签突出显示在视觉点检查坏标签可以很容易地识别和手动处理(现在我们预计数据集中不会有很多坏标签。)
很容易删除不需要的标签(想想简单的PHP / Python /其他) - 但我们不想这样做并且可能会丢失数据。
同样,对标签进行编码也很容易,但我们不希望将丑陋的无用标签导入内容中。
做这种事的最好方法是什么?我不禁想到,我错过了一个简单的解决方案,或者我正在以错误的方式思考它。
答案 0 :(得分:2)
在这种情况下,CSS可能是你的朋友
* {
text-decoration: line-through;
}
h1, p <list other allowed tags> {
text-decoration: none;
}
答案 1 :(得分:0)
您可以巧妙地使用XPath来获取惊喜元素列表:
//*[name() != 'h1'
and name() != 'p'
and name() != 'b'
and name() != 'span'
and name() != 'div'
and name() != 'body'
and name() != 'a']
以您选择的语言或类似XPath Helper(Chrome)的内容。
“XPath 1.0 to find if an element's value is in a list of values”的答案可能会让您更容易阅读。