Я использую VTD-XML для объединения моих XML-файлов, размер которых превышает 800 МБ (высокая возможность получить 2 ГБ).Я прочитал документацию, которая может поддерживать 2 ГБ, если для пространства имен установлено значение false.С учетом сказанного, как я могу правильно использовать selecXPath () evalXPath () и getAttrVal () и т.д ..?Потому что я получаю сообщение об ошибке пространства имен, но могу работать правильно, если я переключаюсь на true с учетом пространства имен.
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"));
}
примечание: закомментированные коды - это true с учетом пространства имен.
Любые указания приветствуются.