XSLT尝试从兄弟节点中提取数据

时间:2017-05-17 14:36:56

标签: xml xslt

嘿我正在尝试检查我的xml文档中是否存在电子邮件,如果是,则密码是兄弟节点,与传递密码相同,我将获取密码和电子邮件作为参数。到目前为止,我所尝试的是

<xsl:template match="/">
    <xsl:for-each select="customers//email[text()=$emailPassed] and 
      customers//password[text()=$password]">
        true
    </xsl:for-each>
</xsl:template>

XML文件在这里

<?xml version="1.0"?>
    <customers>
     <customer>
      <customerid>74</customerid>
       <firstname>test</firstname>
        <lastname>test</lastname>
        <email>xx.xx@gmail.com</email>
        <password>591c2fdfc6d2d</password>
      </customer>
    </customers>

请你帮我解决这个问题,我被困了一个小时。

1 个答案:

答案 0 :(得分:0)

在这里使用xsl:if可能更有意义,但您正在寻找的表达式是

    <xsl:if test="customers/customer[email=$emailPassed and password=$password]">
        <xsl:text>true</xsl:text>
    </xsl:if>

或者更好的是,只为了这个

<xsl:value-of select="boolean(customers/customer[email=$emailPassed and password=$password])" />

如果不匹配,这也将返回false