不,不可能有基于属性的异常!
但!!如果您坚持使用替代解决方案,那么..我建议您插入一个没有属性<![CDATA[
的元素..请参阅下面的示例: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>