Xml XSL转换是否排除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

我正在做一个xstl转换,我想从源xml中保留一个CDATA条目。因此,我相应地定义了cdata节元素。但是我有一个相同的qname属性
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="'&#60;![CDATA['" disable-output-escaping="yes"/>
      <xsl:apply-templates select="node()"/>
      <xsl:value-of select="']]&#62;'" 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>