代码之家  ›  专栏  ›  技术社区  ›  SeeDerekEngineer

多属性元素上的XSLT if语句

  •  1
  • SeeDerekEngineer  · 技术社区  · 6 年前

    <MainElement name = "apple">
       <Parameter variable1 = "foo" variable2 = "bar"/>
       <Parameter variable1 = "foo" variable2 = "notBar"/>
    

    我正在使用xsl打印 MainElement 如果它包含同时具有 variable1 == "foo" variable2 == "bar"

    <xsl:for-each select = "MainElement">
       <xsl:if test = "Parameter/@variable1 = 'foo' and Parameter/@variable2 = 'bar'">
          ...
       </xsl:if>
       <xsl:if test = "Parameter/@variable1 = 'foo' and Parameter/@variable2 = 'notBar'">
    </xsl:for-each>
    

    问题是这个xsl代码没有检查 Parameter

    我知道我可以尝试另一种方法而不用 if

    1 回复  |  直到 6 年前
        1
  •  2
  •   kjhughes    6 年前

    将测试放在上的单个谓词测试中 Parameter

    例如,改变

    Parameter/@variable1 = 'foo' and Parameter/@variable2 = 'bar'
    

    Parameter[@variable1 = 'foo' and @variable2 = 'bar']
    

    所以测试涉及到 单一的 参数 MainElement 具有两个目标属性值,而不是可能分开的 可以单独限定的元素。