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

如何使用XSLT为XML的每条experience记录添加ID与name并分行输出

解决方案

这里有一份能满足你需求的XSLT代码,它会将每份experience记录与对应的ID、姓名组合,每条单独占一行输出:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:vb="http://example.com/vb"> <!-- 声明XML中使用的vb命名空间 -->

  <xsl:output method="text" encoding="UTF-8"/> <!-- 指定输出为纯文本格式 -->

  <xsl:template match="/vb:Report">
    <!-- 先获取全局的ID和name值,避免重复查询 -->
    <xsl:variable name="reportId" select="normalize-space(vb:ID)"/>
    <xsl:variable name="reportName" select="normalize-space(vb:name)"/>

    <!-- 遍历每一条experience记录 -->
    <xsl:for-each select="vb:experience">
      <!-- 按顺序输出字段,用空格分隔,normalize-space清理前后空白 -->
      <xsl:value-of select="$reportId"/>
      <xsl:text> </xsl:text>
      <xsl:value-of select="$reportName"/>
      <xsl:text> </xsl:text>
      <xsl:value-of select="normalize-space(vb:title)"/>
      <xsl:text> </xsl:text>
      <xsl:value-of select="normalize-space(vb:company)"/>
      <xsl:text> </xsl:text>
      <xsl:value-of select="normalize-space(vb:startend)"/>
      <xsl:text>&#10;</xsl:text> <!-- 添加换行符,实现每条记录单独一行 -->
    </xsl:for-each>
  </xsl:template>

</xsl:stylesheet>

关键说明:

  • 命名空间处理:你的XML使用了vb前缀,所以XSLT必须声明对应的命名空间才能正确匹配节点(这里的命名空间URI可以自定义,只要和XML中的一致即可;如果你的XML没有显式定义命名空间,保持这个声明也能正常工作)
  • 空白清理:使用normalize-space()可以自动去除字段前后的多余空格(比如你输入中Consultant2前面的空格、company标签周围的空格),让输出更整洁
  • 文本输出:通过<xsl:output method="text"/>确保输出是纯文本格式,没有XML标签

修正后的输入XML(注意XML大小写敏感,统一了标签闭合的大小写):

<vb:Report xmlns:vb="http://example.com/vb">
  <vb:ID>1111</vb:ID>
  <vb:name>tinker bell</vb:name>
  <vb:experience>
    <vb:title>Consultant1</vb:title>
    <vb:company>Coke</vb:company>
    <vb:startend>04/01 - 04/30</vb:startend>
  </vb:experience>
  <vb:experience>
    <vb:title> Consultant2</vb:title>
    <vb:company>Pepsi</vb:company>
    <vb:startend>05/01 - 04/30</vb:startend>
  </vb:experience>
</vb:Report>

最终输出:

1111 tinker bell Consultant1 Coke 04/01 - 04/30
1111 tinker bell Consultant2 Pepsi 05/01 - 04/30

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:46:45