使用 xslt 提取 cdata [英] extract cdata using xslt
本文介绍了使用 xslt 提取 cdata的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
下面是带有CDATA部分的xml
Below is the xml that has CDATA section
<?xml version="1.0" encoding="ISO-8859-1"?>
<character>
<name>
<role>Indiana Jones</role>
<actor>Harrison Ford</actor>
<part>protagonist</part>
<![CDATA[ <film>Indiana Jones and the Kingdom of the Crystal Skull</film>]]>
</name>
</character>
对于上面的 xml,我需要删除 CDATA 并在现有元素film"下添加新元素,因此最终输出将是:
For above xml i need to rip off the CDATA and add new element under the existing element "film" , so the final output will be :
<?xml version="1.0" encoding="ISO-8859-1"?>
<character>
<name>
<role>Indiana Jones</role>
<actor>Harrison Ford</actor>
<part>protagonist</part>
<film>Indiana Jones and the Kingdom of the Crystal Skull</film>
<Language>English</Language>
</name>
</character>
这可以使用 XSLT 来完成吗?
Is this can be done using XSLT?
推荐答案
稍微修改的识别功能应该可以工作.
A slightly modified identify function should work.
鉴于此 XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<character>
<name>
<role>Indiana Jones</role>
<actor>Harrison Ford</actor>
<part>protagonist</part>
<![CDATA[ <film>Indiana Jones and the Kingdom of the Crystal Skull</film>]]>
</name>
</character>
使用此 XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates select="*" />
<xsl:value-of select="text()" disable-output-escaping="yes"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
将产生以下输出:
<?xml version="1.0" encoding="UTF-8"?>
<character>
<name>
<role>Indiana Jones</role>
<actor>Harrison Ford</actor>
<part>protagonist</part>
<film>Indiana Jones and the Kingdom of the Crystal Skull</film>
</name>
</character>
(在 oXygen 12.2 中使用 Saxon-HE 9.3.0.5 测试.)
(Tested using Saxon-HE 9.3.0.5 in oXygen 12.2.)
这篇关于使用 xslt 提取 cdata的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文