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

如何在动态生成的XSLT中添加datatype属性?解决验证报错

问题分析与解决

你的错误根源在于违反了XML基础语法:XML元素的结束标签绝对不能包含任何属性。你写的<id datatype="Number">3</id datatype="Number">里,结束标签</id>后额外加了datatype="Number",这直接导致XSLT验证失败。

正确的写法

只需在元素的开始标签上添加datatype属性,结束标签保持</元素名>的纯净格式即可:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:msxsl="urn:schemas-microsoft-com:xslt">
  <xsl:output method="xml" version="1.0" encoding="utf-8" omit-xml-declaration="no" indent="yes"/>
  <xsl:template match="/">
    <Envelops>
      <order>
        <id datatype="Number">3</id>
      </order>
    </Envelops>
  </xsl:template>
</xsl:stylesheet>

动态生成XSLT时的注意事项

如果是通过代码动态拼接XSLT字符串,要做好两点:

  • 生成元素开始标签时,将datatype属性嵌入开始标签内,比如拼接成:<{元素名称} datatype="{数据类型值}">
  • 生成结束标签时,仅输出</{元素名称}>,不要附加任何属性相关内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:15:38