2011-06-14 40 views
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")); 
} 

注意:注释代码是知道命名空间是真的。

任何指导表示赞赏。

+0

我通过vtd-xml-users邮件列表回答了您的问题吗? – 2011-06-17 03:41:19

回答

0

您将需要使用扩展的VTD-XML,它在名称空间方面没有标准vtd-xml的限制。在标准vtd-xml中,如果打开命名空间感知,最大文档大小为1GB。

相关问题