【问题标题】:Greater than(>) and less than(<) operator not working in XSLT大于(>)和小于(<)运算符在 XSLT 中不起作用
【发布时间】:2015-06-02 19:15:42
【问题描述】:

下面是我的 XSL,我正在尝试检查文件大小是否大于预设值并尝试停止处理的条件,但看起来条件没有得到执行。我不确定它是否格式不正确。任何人都可以查看它,看看是否有任何问题?

变量 IncomingFileSize 和 SetFileSize 的值都是“数字”类型

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dp="http://www.datapower.com/extensions" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:dpconfig="http://www.datapower.com/param/config" extension-element-prefixes="dp" exclude-result-prefixes="dp dpconfig inc">
<xsl:template match="/">
    <xsl:variable name="File_CD" select="document('local:///FileIntake/Resources/FileServiceConfigData.xml')"/>
    <xsl:variable name="IncomingFileSize" select="number(dp:variable('var://service/mpgw/request-size'))"/>
    <!-- <xsl:variable name="SetFileSize" select="$File_CD/FileServiceConfig/FileSize"/> -->
    <xsl:variable name="SetFileSize" select="number($File_CD/FileServiceConfig/FileSize)"/>
    <dp:set-variable name="'var://context/var/IncomingFileSize'" value="$IncomingFileSize"/>
    <dp:set-variable name="'var://context/var/SetFileSize'" value="$SetFileSize"/>
    <xsl:choose>
        <xsl:when test="'$IncomingFileSize '&gt;' $SetFileSize'">
            <dp:reject/>
        </xsl:when>
        <xsl:otherwise>
            <dp:accept/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

【问题讨论】:

  • 为什么xsl:when/@test中的$IncomingFileSize$SetFileSize有单引号?

标签: xml xslt-1.0 ibm-datapower


【解决方案1】:

我知道我错在哪里了。下面是写条件的正确方法。我放了不必要的单引号。

<xsl:when test="$IncomingFileSize &gt; $SetFileSize">

【讨论】:

  • &lt;xsl:when test="$IncomingFileSize &gt; $SetFileSize"&gt;。只有左括号&amp;lt; 需要转义为&amp;lt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-01
  • 2021-12-29
  • 2013-02-16
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
相关资源
最近更新 更多