System.Xml.XmlDocument类有SelectSigleNode和SelectNodes两个函数,给它们一个xpath参数就可以进行节点选取。因为它用的是xpath做参数,因而特别好用,但是最近发现这两个函数是有局限的:并不能解析所有的xpath。今天试了两个就不行。
1. xpath = "/books/book[not(@b = @a * 2)]/self::*[1]/@b + /books/mybook/as[text()]"; // 不知道这个xpath写得对不对
2. xpath = "sum(/books/book/@a)";
我的测试xml如下:
<?xml version="1.0" encoding="GB2312" ?>
<books>
<book a="3" b="6"></book>
<book a="3" b="5"></book>
<book a="4" b="8"></book>
<mybook>
<as>1</as>
</mybook>
</books>