1
我正在使用VTD-XML来合并我的文件大小超过800MB(可能性高达2GB)的xml文件。 我读过可支持2GB的文档,如果名称空间感知为 设置为false。 这样说,我该如何正确使用selecXPath()evalXPath()和 getAttrVal()等..? 因为我收到名称空间错误,但如果我将 切换到名称空间为true,可以正常运行。Java:VTD-XML 2.10:如何获取没有名称空间的属性val?
VTDNav gmlNav = null;
//if(! gen.parseFile(gmlFile, true)) return;
if(! gen.parseFile(gmlFile, false)) return;
gmlNav = gen.getNav();
AutoPilot gmlAutoPilot = new AutoPilot(gmlNav);
//gmlAutoPilot.declareXPathNameSpace("xlink","http://www.w3.org/1999/xlink");
//gmlAutoPilot.declareXPathNameSpace("gml","http://www.opengis.net/gml/3.2");
//sourceAutoPilot.selectXPath("//*[gml:id='123' or gml:id='456']");
sourceAutoPilot.selectXPath("//*[id='123' or id='456']");
while (sourceAutoPilot.evalXPath() != -1) {
//String gmlId = sourceNav.toString(sourceNav.getAttrVal("gml:id"));
String gmlId = sourceNav.toString(sourceNav.getAttrVal("id"));
}
注意:注释代码是知道命名空间是真的。
任何指导表示赞赏。
我通过vtd-xml-users邮件列表回答了您的问题吗? – 2011-06-17 03:41:19