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

基于语言上下文使用XSLT移除指定XML节点的问题求助

正确XSLT实现方案

原始XML示例

<Product>
  <ValueGroup language="en">
    <Value LOVQualifierID="Y"/>
  </ValueGroup>
  <ValueGroup language="fr">
    <Value LOVQualifierID="N"/>
  </ValueGroup>
  <prd_att_description language="en">English Description</prd_att_description>
  <prd_att_description language="fr">French Description</prd_att_description>
</Product>

错误XSLT示例(问题:未按语言关联过滤条件)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>
  <xsl:template match="prd_att_description[../ValueGroup/Value/@LOVQualifierID='Y']"/>
</xsl:stylesheet>

正确XSLT代码

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <!-- 身份模板:默认复制所有节点/属性 -->
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <!-- 按语言匹配过滤prd_att_description -->
  <xsl:template match="prd_att_description">
    <xsl:variable name="current-lang" select="@language"/>
    <!-- 获取对应语言ValueGroup的Qualifier状态 -->
    <xsl:variable name="qualifier-status" select="/Product/ValueGroup[@language=$current-lang]/Value/@LOVQualifierID"/>
    
    <!-- 仅保留Qualifier为N的节点 -->
    <xsl:if test="$qualifier-status = 'N'">
      <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
      </xsl:copy>
    </xsl:if>
  </xsl:template>
</xsl:stylesheet>

核心逻辑说明

  1. 身份模板:保证所有未被特殊模板匹配的节点和属性都原样复制,避免丢失其他内容。
  2. 语言关联匹配:对每个prd_att_description节点,先提取其language属性,再找到同语言的ValueGroup节点,获取对应的LOVQualifierID值。
  3. 过滤规则:仅当对应语言的LOVQualifierID为N时,保留当前prd_att_description节点;为Y则直接跳过(不输出)。

预期输出

<Product>
  <ValueGroup language="en">
    <Value LOVQualifierID="Y"/>
  </ValueGroup>
  <ValueGroup language="fr">
    <Value LOVQualifierID="N"/>
  </ValueGroup>
  <prd_att_description language="fr">French Description</prd_att_description>
</Product>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 15:26:04