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

XSLT如何提取子元素下全部嵌套子元素内容并渲染到表格

解决方法

错误根因

  1. XPath路径错误:<xsl:for-each select="VisitedCountries/Country">执行时,循环内部的上下文已经是单个<Country>节点,你写的select="Country"是查找当前节点下的子<Country>节点,该节点不存在,因此无法正常获取多个国家的值。
  2. 缺少分隔逻辑:即使成功取值,多个国家名称会直接拼接,无法区分。
  3. 字段不匹配:你提供的XML示例中没有InsuranceID、Phone节点,这两列运行后会显示为空,可根据你的完整XML结构调整对应字段。

修复代码

你使用的是XSLT 2.0,推荐直接用value-of的separator属性实现,不需要写循环,代码更简洁:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                              xmlns:xhtml="http://www.w3.org/1999/xhtml">
    <xsl:output method="xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>
    <xsl:template match="/">
        <html>
        <head></head>
        <body>
            <table border="1"> <!-- 加border方便查看效果,不需要可删除 -->
                <xsl:for-each select="CarOwnerships/Cars/Car">
                    <tr>
                        <td><xsl:value-of select="ProductionD"/></td>
                        <td>
                            <!-- 额外补充了货币符号显示,不需要可删除 -->
                            <xsl:value-of select="MarketValue/@currency"/>
                            <xsl:value-of select="MarketValue"/>
                        </td>
                        <td>
                            <!-- 直接获取所有国家,用逗号分隔,同时清理节点前后多余空白 -->
                            <xsl:value-of select="VisitedCountries/Country/normalize-space(.)" separator=", "/>
                        </td>
                        <td><xsl:value-of select="InspectionDates/normalize-space(.)"/></td>
                    </tr>
                </xsl:for-each>
            </table>
        </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

如果需要兼容XSLT 1.0,就把国家列的代码替换为循环写法即可:

<td>
    <xsl:for-each select="VisitedCountries/Country">
        <xsl:value-of select="normalize-space(.)"/>
        <xsl:if test="position() != last()">
            <xsl:text>, </xsl:text>
        </xsl:if>
    </xsl:for-each>
</td>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:45:03