读书人

xpath 2.0 语句转 1.0该如何写

发布时间: 2012-03-04 11:13:33 作者: rapoo

xpath 2.0 语句转 1.0,该怎么写?
xml文档范例:
<root>
<item name="Jack" a="1" b="2" c="3"/>
<item name="Rich" a="2" b="2" c="3"/>
<item name="Jack" a="3" c="3"/>
</root>
现在要统计name="Jack"的数据项,得到c-b+a的值并累加,
用xpath2.0很好办,sum(//item[@name="Jack"]/(@c -@b +@a)) 就可以搞定,
现在用msxml4.0解析器,只支持xpath1.0,怎样改上面的xpath语句啊?或者用别的方法?
先谢谢了



[解决办法]
sum(//item[@name="Jack"]/(@c -@b +@a)) xpath2.0的这句不对啊
[解决办法]

XML code
<root><item name="Jack" a="1" b="2" c="3"/><item name="Rich" a="2" b="2" c="3"/><item name="Jack" a="3" b="2" c="3"/></root>
[解决办法]
XML code
number(//item[@name='Jack']/@c)-number(//item[@name='Jack']/@b)+number(//item[@name='Jack']/@a)
[解决办法]
XML code
<?xml version="1.0"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"><xsl:for-each select="root/item"><xsl:choose><xsl:when test = "@b"><xsl:value-of select="number(@c)-number(@b)+number(@a)" /></xsl:when><xsl:otherwise><xsl:value-of select="number(@c)+number(@a)" /></xsl:otherwise></xsl:choose></xsl:for-each></xsl:template></xsl:stylesheet>
[解决办法]
楼上的正解

读书人网 >XML SOAP

热点推荐