如何写一个XPath/XSLT查询匹配两个属性
问题描述:
我想从下面XML匹配属性(磅= prodbind和s = FALSE):如何写一个XPath/XSLT查询匹配两个属性
< 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"
如果(这就是根本不清楚从你的问题)你想算多少sample
元素满足给定的标准,那么你应该使用:
count(/testResults/sample[@lb='ProdBind' and @s='false'])
还要注意元素名称不能以空格开始 - 因此,如果您输入真有:
< testResults version="1.2">
那么它不是一个XML文档,根本就不能被XSLT处理。
答
小记,与一些处理器也将以更快的速度将and
打入的过滤器的顺序:
count(/testResults/sample[@lb='ProdBind'][@s='false'])
+0
感谢您修复,Mads。 –
“*没有运气*”是没有问题的一个很好的说明。 –