修复xslt错误以进行验证

时间:2013-05-06 13:45:09

标签: xml validation xslt

我需要在XSLT中验证Invoice元素的值:缺少元素=默认为1(工作)...空白=默认为1(工作)...但是2或字符串中的任何数字都不起作用,因为它会一直回到1。

<xsl:template match="Transaction" >
  <Transaction invoice="{Invoice}">
    <xsl:attribute name="invoice">
      <xsl:choose>
        <xsl:when test="@Invoice and (@Invoice!='') and (@Invoice!='0')">
        <xsl:value-of select="@Invoice"/></xsl:when>
        <xsl:otherwise>1</xsl:otherwise>
      </xsl:choose>
     </xsl:attribute>
</xsl:template>

希望得到你的帮助。非常感激。

由于

1 个答案:

答案 0 :(得分:0)

when条件中使用AND代替和(似乎只有小写是好的)

从一个简单的条件开始,一次添加一个,看看哪个是坏的:

<xsl:when test="@Invoice">

然后

<xsl:when test="@Invoice and (@Invoice!='')">

然后

<xsl:when test="@Invoice and (@Invoice!='') and (@Invoice!=0)">

虽然我会写

<xsl:when test="@Invoice and (@Invoice &gt; 0)">