Xml XSL转换是否排除cdata节的特定qname?
我正在做一个xstl转换,我想从源xml中保留一个CDATA条目。因此,我相应地定义了cdata节元素。但是我有一个相同的qname属性Xml XSL转换是否排除cdata节的特定qname?,xml,xslt,Xml,Xslt,我正在做一个xstl转换,我想从源xml中保留一个CDATA条目。因此,我相应地定义了cdata节元素。但是我有一个相同的qname属性name=“test”。在这里,我不想应用cdata。如何排除此元素 .xml ]> .xsl 否基于属性不可能有异常 但是!!如果你坚持要另一种解决方案,那么。。我建议您为一个元素my:request插入,该元素没有属性name。。请参阅下面的示例: <?xml version="1.0" encoding="utf-8"?> <xsl:s
name=“test”
。在这里,我不想应用cdata。如何排除此元素
.xml
]>
.xsl
否基于属性不可能有异常 但是!!如果你坚持要另一种解决方案,那么。。我建议您为一个元素
my:request
插入,该元素没有属性name
。。请参阅下面的示例:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="http://www.w3.org/2001/something">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="my:request[not(@name)]">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<!--Insert CDATA-->
<xsl:value-of select="'<![CDATA['" disable-output-escaping="yes"/>
<xsl:apply-templates select="node()"/>
<xsl:value-of select="']]>'" disable-output-escaping="yes"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
输入XML:
<?xml version="1.0" encoding="utf-8"?>
<my:root xmlns:my="http://www.w3.org/2001/something">
<my:request other="something">data</my:request>
<my:request name="test">data</my:request>
</my:root>
资料
数据
输出XML:
<?xml version="1.0" encoding="utf-8"?>
<my:root xmlns:my="http://www.w3.org/2001/something">
<my:request other="something"><![CDATA[data]]></my:request>
<my:request name="test">data</my:request>
</my:root>
数据
ty太多了!这正是我想要的。
<?xml version="1.0" encoding="utf-8"?>
<my:root xmlns:my="http://www.w3.org/2001/something">
<my:request other="something">data</my:request>
<my:request name="test">data</my:request>
</my:root>
<?xml version="1.0" encoding="utf-8"?>
<my:root xmlns:my="http://www.w3.org/2001/something">
<my:request other="something"><![CDATA[data]]></my:request>
<my:request name="test">data</my:request>
</my:root>