You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用XSLT在XML元素名称中添加特殊字符@

XSLT生成含@字符XML元素的解决方案

XML元素名称里的@符号不符合W3C定义的QName规范,所以直接使用<xsl:element name="@type">会触发"Element name {@type} is not a valid QName"错误。如果必须生成这种非标准元素,可通过以下两种方法实现:

方法1:用<xsl:text>输出原始标记

通过禁用输出转义,直接输出元素的原始标签,绕过XSLT的QName校验:

<xsl:text disable-output-escaping="yes">&lt;@type&gt;</xsl:text>
<xsl:value-of select="$type" />
<xsl:text disable-output-escaping="yes">&lt;/@type&gt;</xsl:text>

disable-output-escaping="yes"会让处理器直接输出<和>,而非转义后的实体字符。需注意该属性的支持度取决于具体XSLT处理器(如Xalan、Saxon均支持)。

方法2:XSLT 2.0+处理器的特殊处理(可选)

若使用支持XSLT 2.0及以上的处理器(如Saxon),也可通过xsl:result-document配合文本输出模式构造内容,但方法1的通用性更强。

重要提醒:生成的XML不符合标准规范,多数XML解析器无法正常解析,仅适用于特定强制场景。

内容的提问来源于stack exchange,提问作者technocrat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 13:49:53