2

我有一个大型数据集,其中包含许多正在迁移到另一个系统的富文本编辑内容 blob。在允许的 HTML 标签方面,新系统比旧系统更严格,我们需要能够识别数据中的哪些标签会被剪切或编码并在输入时以错误的方式包含在内容中,然后再迁移数据.

例如,给定这个 HTML:

<h1>My page</h1><p>Lorem ipsum<marquee>SURPRISE!</marquee></p>

我们不会对“h1”和“p”标签感兴趣(它们在某处的例外列表中列出),但理想情况下,我们希望能够在视觉抽查中看到突出显示的“marquee”标签坏标签可以很容易地识别和手动处理(现在我们预计数据集中不会有很多坏标签。)

去除不需要的标签很容易(想想简单的 PHP/Python/whatever)——但我们不想这样做并且可能会丢失数据。

同样,编码标签很容易,但我们不想将丑陋的无用标签作为内容的一部分导入。

做这种事情的最好方法是什么?我不禁认为我缺少一个简单的解决方案,或者我正在以错误的方式思考它。

4

2 回答 2

2

在这种情况下,CSS 可能是你的朋友

   * {
     text-decoration: line-through;
    }
   h1, p <list other allowed tags> {
    text-decoration: none;
    }
于 2013-03-14T13:10:52.370 回答
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 ”的答案可能会给出一个更容易阅读的答案。

于 2013-03-14T13:25:13.740 回答