1

我正在尝试将来自 Wordpress 的 RSS 2 转换为 XHTML 1.0 Strict(使用 cronjob 和 xsltproc);img但是,Wordpress会在元素CDATA末尾插入 an 。有一个属性,summary该属性在 XHTML 1.0 Strict 中无效。因为它是 CDATA,所以我认为这意味着我无法将它与我的 XSLT 匹配。我可以肯定地说,永远是结束前的最后一件事。我宁愿剥离attr 并保留图像,但我宁愿完全摆脱元素,也不愿使用无效标记。imgborderimgCDATAborder

是否可以使用 XSLT 在 CDATA 内部进行匹配,也许使用字符串表达式?如果是这样,这是正确的方法,还是有更好的解决方案?

4

2 回答 2

3

记住 CDATA 的含义:“字符数据”。在 CDATA 中放一些东西意味着:这可能看起来像标记,但我不希望你把它当作标记。因此,如果 CDATA 中的那个东西看起来像一个img元素,那么 CDATA 会告诉你不要被愚弄——它根本不是一个元素。话虽如此,您当然可以以处理任何其他字符串的方式处理文本,包括将其传递给 XML 解析器以将其转换为节点树。

于 2011-03-04T21:14:06.030 回答
1

CDATA 只是一个文本节点,您可以将其与text()模板匹配。然后,您可以使用字符串函数border从文本中删除 attr。

于 2011-03-04T20:18:03.823 回答