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

为什么xsl:template match会输出XSLT中未引用的节点值

问题原因

这是XSLT的内置默认模板规则导致的,XSLT解析器在没有找到用户自定义的匹配模板时,会自动调用内置的默认模板处理节点,默认规则如下:

  • 元素节点/根节点规则:递归遍历当前节点的所有子节点,继续应用匹配模板处理
  • 文本节点/属性节点规则:直接将节点的文本内容输出到结果中

你当前的XSLT没有自定义任何模板,因此解析器会从XML根节点开始递归遍历所有元素,碰到文本节点就直接输出,最终所有文本内容被拼接输出,就是你看到的结果。

解决方法

如果要实现仅输出明确映射的节点,你只需要覆盖根节点的默认模板,阻止默认的递归遍历行为即可,参考写法:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <!-- 在这里仅编写你需要明确输出的节点映射逻辑即可 -->
  </xsl:template>
</xsl:stylesheet>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:54:03