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

如何让XSL将class为null的buzz元素视为空并忽略转换?

解决方案:调整XSL条件判断,排除Null Class Buzz场景

你的问题核心是当前XSL的判断逻辑会匹配所有存在的buzz元素,包括带class="null"的情况。只需要修改<xsl:if>的判断条件,把这类不需要处理的buzz排除即可。

核心修改点

把原来的判断条件:

<xsl:if test="buzz">

替换为:

<xsl:if test="buzz[not(@class='null')]">

这个条件会精准匹配你需要处理的两种场景:

  • buzz元素没有class属性(Normal Buzz场景)
  • buzz元素的class属性值不等于null(Non-Null Class Buzz场景)

完整的XSL代码

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
  <xsl:strip-space elements="*"/>
  <xsl:template match="/fizz">
    <foobar>
      <xsl:copy-of select="account"/>
      <logId><xsl:value-of select="accountId"/></logId>
      <!-- 调整后的判断逻辑:排除class为null的buzz -->
      <xsl:if test="buzz[not(@class='null')]">
        <FLIMFLAM SEGMENT="1">
          <HAPP>003</HAPP>
          <SADD><xsl:value-of select="buzz"/></SADD>
        </FLIMFLAM>
      </xsl:if>
    </foobar>
  </xsl:template>
</xsl:stylesheet>

场景验证

  1. Null Class Buzz:<buzz class="null"/> → 条件不满足,不会生成FLIMFLAM块,输出完全符合你的期望。
  2. Non-Null Class Buzz:<buzz class="anythingOtherThanNull"/> → 条件满足,正常生成对应结构。
  3. Normal Buzz:<buzz><complicatedXmlStructureInsideOfHere></buzz> → 条件满足,正确提取内容到SADD节点中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:52:47