XSL IF两个变量从未出现过比较

时间:2019-04-16 10:32:26

标签: xslt

在打印两个变量$ cID和$ uID时,我同时打印了两个变量,并且可以看到它们包含的数据。

尝试比较两者时,即使打印出某些情况,结果也永远不会显示为真。

<xsl:for-each select="document('C:/Users/Scott/Desktop/Uni/dbe/ass1/DBE-work1/DBE-work1/DBE-A1/tweets.xml')">
 <xsl:for-each select='tweets/tweet'>
  <tweet>
   <xsl:variable name="cID" select="user_id"/>
    <xsl:value-of select='$uID'/>
    <xsl:value-of select='$cID'/>
    <xsl:if test="$cID=$uID">
     <xsl:value-of select='$uID'/>
     <xsl:value-of select='$cID'/>
    </xsl:if>
  </tweet>
 </xsl:for-each>
</xsl:for-each>

当前输出为

 <tweets>
      <tweet>90484508
    15985455
        </tweet>
      <tweet>90484508
    90484508
        </tweet>
      <tweet>90484508
    21157904
        </tweet>
      <tweet>90484508
    90484508
        </tweet>
      <tweet>90484508
    90484508
        </tweet>
    </tweets>

但是,当有两个匹配的ID时,在本例中为最后两个。它应该产生重复的结果。

1 个答案:

答案 0 :(得分:0)

Tim C的结果正确。

uID已定义:

 <xsl:variable name="uID" select="id"/>

,并且有一个空格,该空格由<xsl:if test="normalize-space($cID) = normalize-space($uID)">

求解