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

如何通过XPath筛选EN语言元素并编写XSLT生成指定表格?

解决方案

我明白你需要逐个测试每个元素来筛选出语言为EN的条目,同时生成指定的表格结构。下面是完全符合你需求的XSLT代码:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="/">
    <table id="123">
      <tgroup cols="2">
        <colspec colname="c1" colnum="1" colwidth="1.0*"/>
        <colspec colname="c2" colnum="2" colwidth="1.0*"/>
        <thead>
          <row>
            <entry>Name</entry>
            <entry>Values</entry>
          </row>
        </thead>
        <tbody>
          <!-- 循环遍历所有values下的子元素,逐个测试 -->
          <xsl:for-each select="data/item/values/*">
            <!-- 检查当前元素下的language是否为EN -->
            <xsl:if test="language/text()='EN'">
              <row>
                <entry>
                  <ph><xsl:value-of select="local-name()"/></ph>
                </entry>
                <entry><xsl:value-of select="text"/></entry>
              </row>
            </xsl:if>
          </xsl:for-each>
        </tbody>
      </tgroup>
    </table>
  </xsl:template>
</xsl:stylesheet>

关键说明:

  • 用<xsl:for-each select="data/item/values/*">遍历所有values节点下的子元素,完美实现逐个测试每个元素的要求;
  • 对每个元素,通过<xsl:if test="language/text()='EN'">判断其语言是否为EN,完全贴合你后续转换步骤的限制;
  • 最终生成的表格结构和你给出的期望输出完全一致。

转换后的输出:

<table id="123">
  <tgroup cols="2">
    <colspec colname="c1" colnum="1" colwidth="1.0*"/>
    <colspec colname="c2" colnum="2" colwidth="1.0*"/>
    <thead>
      <row>
        <entry>Name</entry>
        <entry>Values</entry>
      </row>
    </thead>
    <tbody>
      <row>
        <entry>
          <ph>element1</ph>
        </entry>
        <entry>text</entry>
      </row>
      <row>
        <entry>
          <ph>element5</ph>
        </entry>
        <entry>description</entry>
      </row>
    </tbody>
  </tgroup>
</table>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:34:58