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

XSL v1.0如何遍历对象列表并获取其中每个属性值?

错误原因

你当前的写法有两个核心问题:

  • xsl:for-each执行时会自动切换上下文节点,进入循环后你只需要基于当前选中的节点写相对路径即可,不需要重复拼接父级路径
  • 你遍历的是adressList列表容器本身,而不是容器内的每个Address对象节点,自然拿不到每个地址的属性值

XSLT 1.0 正确写法

对应你给出的Java类,序列化后的XML结构通常如下(仅作参考):

<employee>
  <emp_id>123</emp_id>
  <adressList>
    <Address>
      <city>北京</city>
      <country>中国</country>
    </Address>
    <Address>
      <city>上海</city>
      <country>中国</country>
    </Address>
  </adressList>
</employee>

对应的遍历XSL写法如下:

<!-- 遍历adressList下的每一个Address节点 -->
<xsl:for-each select="employee/adressList/Address">  
  <!-- 直接写相对当前Address节点的属性路径即可 -->
  <xsl:value-of select="city" />
  <xsl:value-of select="country" />
</xsl:for-each>

如果你的XML结构里adressList下没有额外的Address包裹层,每个地址节点直接是adressList的子节点,写法可以调整为:

<xsl:for-each select="employee/adressList/*">  
  <xsl:value-of select="city" />
  <xsl:value-of select="country" />
</xsl:for-each>

补充说明

XSLT 1.0本身完全支持遍历节点列表并访问子节点属性,只要严格基于当前上下文节点写相对路径即可,不要重复写循环外层的父节点路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 19:36:02