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

使用XSLT迭代XML生成文本数组时仅输出首个item代码的问题

XSLT仅输出第一个item代码的问题排查

问题根源

你的XSLT代码逻辑本身是正确的,问题出在原始XML的语法错误:第一个<item>节点内的<quantity>标签未正确闭合,写成了<quantity>2</quantity(缺少末尾的>)。XML解析器遇到此类格式错误会终止解析,后续的<item>节点无法被识别,导致XSLT仅能处理第一个item。

修复方案

1. 修正XML语法错误

补全第一个<quantity>标签的闭合符号,修正后的XML代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<order id="1021">
    <items>
        <item code="11">
            <quantity>2</quantity>
            <price>50</price>
        </item>
        <item code="21">
            <quantity>1</quantity>
            <price>250</price>
        </item>
        <item code="13">
            <quantity>4</quantity>
            <price>100</price>
        </item>
    </items>
    <status>3</status>
</order>

2. 验证XSLT代码

你的原有XSLT代码无需修改,使用修正后的XML运行即可得到预期输出:[11, 21, 13]

可选:简化XSLT代码(XSLT 2.0+)

如果你的XSLT处理器支持2.0及以上版本,可以使用separator属性简化代码:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="/order">
        <xsl:text>[</xsl:text>
        <xsl:value-of select="items/item/@code" separator=", "/>
        <xsl:text>]</xsl:text>
    </xsl:template>
</xsl:stylesheet>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:12:19