vtd-xml我需要做什么去任何元素

时间:2011-06-09 00:24:45

标签: xml xpath vtd-xml

我想使用vtd-xml导航xml,我想导航到XPath给出的任何索引。例如:

vg.parseFile("/tmp/somexml.xml",true);
VTDNav vn = vg.getNav();                
AutoPilot ap = new AutoPilot();
ap.selectXPath("//someelement");                
ap.bind(vn);
for (int i = ap.evalXPath(); i != -1;) {
try {                        
vn.toElement(i);                                               
} catch (Exception ex) {
logger.error(null, ex);
}

我调试了,例如我得到索引40,但是当我尝试toElement(40)时它失败了。我一直得到无效的导航。无论如何我可以导航到任何元素?

1 个答案:

答案 0 :(得分:1)

你不能要求vtdNav转到任何索引值,VTD-XML不能像那样工作,原因很简单,因为索引不能保证是元素类型。

您可以通过多种方式保存/加载节点位置,或从索引值恢复节点位置。但一般来说,节点位置不能保证是有效的树位置(属性值,例如......)......