如何编写XPath/xslt查询以匹配两个属性

如何编写XPath/xslt查询以匹配两个属性,xslt,xpath,Xslt,Xpath,我想从下面的XML中匹配AttributeB=prodbind和s=false: < testResults version="1.2"> < sample na="2" ng="2" by="346" dt="text" tn="Thread Group 1-2" rm="javax.naming.CommunicationException: defaulthost:30 [Root exception is java.net.UnknownHostException:

我想从下面的XML中匹配AttributeB=prodbind和s=false:

< testResults version="1.2">

< sample na="2" ng="2" by="346" dt="text" tn="Thread Group 1-2" rm="javax.naming.CommunicationException: defaulthost:30 [Root exception is java.net.UnknownHostException: defaulthost]" rc="800" lb="ProdBind" s="false" ts="1468674969351" lt="0" t="2123"/>
尝试了这些选项,但没有成功:

< xsl:variable name="prod1fail" select="count(/testResults/*[@lb = 'prodBind' and @s='false'])"/>

< xsl:variable name="prod1fail" select="count(//testResults/sample[@lb = 'prodBind' and @s='false'])"/>
感谢您的指点。

XML区分大小写:ProdBind与ProdBind不同

如果您的问题根本不清楚,您试图计算满足给定标准的样本元素的数量,那么您应该使用:

count(/testResults/sample[@lb='ProdBind' and @s='false'])
还要注意,元素名称不能以空格开头-因此,如果您的输入确实有:

< testResults version="1.2">

那么它就不是XML文档,根本不能被XSLT处理。

请注意,对于某些处理器,将and分解为一系列过滤器会更快:

count(/testResults/sample[@lb='ProdBind'][@s='false'])

没有运气不是问题的好描述。谢谢你的修正,玛兹。