VTD-XML经验集锦之使用 XPath 进行相对定位,提高导航效率
之前的帖子中,提到了“XPath 轴(XPath Axes)”的概念,在使用 XPath 的过程中,采用灵活的相对路径可以很大程度上提高导航的性能和速度,而“XPath 轴”正是 XPath 相对路径的核心内容。
<a><b id="1">aaa</b><b id="2"><sub></sub></b><x><b id="3">ccc</b></x><b id="4">ddd</b><y><b id="5"><sub></sub></b></y><b id="6"> <sub></sub></b></a>
……VTDNav vn = vg.getNav();AutoPilot ap = new AutoPilot(vn);ap.selectXPath("//b[@id='3']"); // 先导航到 id 为 3 的 b 节点if (ap.evalXPath() != -1) {ap.resetXPath();ap.selectXPath("following::b[sub]"); // 当前节点的结束标签之后的所有节点中,名称为b 并且含有<sub>子元素的节点if (ap.evalXPath() != -1) {int idIndex = vn.getAttrVal("id");System.out.println("id: " + vn.toNormalizedString(idIndex)); //}}……