使用XSLT删除XML中CDATA节内的br标记

使用XSLT删除XML中CDATA节内的br标记,xml,xslt,Xml,Xslt,我想使用XSLT删除CDATA部分中重复的标记 <data> <![CDATA[ Hello <br /> <br /> <br /> how are you? ]]> </data> 你好吗?]> 我期望的结果是 <data> Hello <br /> How are you? </data> 你好你好吗? 如何做到这一点?CDATA区域内没有标记。CDATA表示“字

我想使用XSLT删除CDATA部分中重复的

标记

<data>
 <![CDATA[ Hello <br /> <br /> <br /> how are you? ]]>
</data>



你好吗?]>
我期望的结果是

<data>
   Hello <br /> How are you?
</data>

你好
你好吗?

如何做到这一点?

CDATA区域内没有标记。CDATA表示“字符数据”;将字符串放在CDATA中只有一个目的,那就是说“这里任何看起来像标记的东西实际上都不是标记,而是普通字符”

如果创建XML的人没有意识到这一点,并且愚蠢地将CDATA放在他们希望被视为标记的标记周围,那么您的恢复操作是提取CDATA部分的内容,在其周围包装一个元素,然后将其提交给XML解析器进行解析。一些XSLT处理器有内置的扩展(例如saxon:parse())来实现这一点,而在另一些XSLT处理器中,您可以调用Java或Javascript