我想使用XSLT删除CDATA部分中的重复<br />
标记。
<data>
<![CDATA[ Hello <br /> <br /> <br /> how are you? ]]>
</data>
我期待的输出是
<data>
Hello <br /> How are you?
</data>
如何做到这一点?
答案 0 :(得分:2)
CDATA部分内没有标签。 CDATA表示“字符数据”;在CDATA中放一个字符串只有一个目的,就是说“这里看起来像标签的任何东西实际上都不是标签,它是普通字符”。
如果创建XML的人没有意识到这一点并且愚蠢地将CDATA放在他们希望被视为标记的标记周围,那么你的恢复操作就是提取CDATA部分的内容,在其周围包裹一个元素,然后将其提交给XML解析器进行解析。一些XSLT处理器具有内置扩展(例如saxon:parse())来执行此操作,而在其他处理器中,您可能可以调用Java或Javascript。