我在用着XPath
查询我的XML-file
目前大约有100KB
.
我正在迭代一个数组并查询列表中的每个值。
不幸的是单个查询大约需要 3-4 秒在调试器下,在禁用调试器的情况下稍微少一些。
有什么想法为什么这么慢吗?我用一个Galaxy S2
供测试用。
这是我的代码:
XPath xpath = XPathFactory.newInstance().newXPath();
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
builderFactory.setNamespaceAware(true);
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document document = builder.parse(new File(file_on_internal_sd_url)));
int size = mPrefs.getInt("no_ids", 0);
for(int i=0;i<size;i++) {
String id= mPrefs.getString("id_" + i, null);
String expression = "/tag1/tag2[@id = '" + id+ "']";
NodeList nodes = (NodeList) xpath.evaluate(expression, document, XPathConstants.NODESET);
if(nodes.getLength()>0) {
myElements.add((Element)nodes.item(0));
}
}
Update
当我省略XPathConstants.NODESET
评估很快就完成了,但我没有得到NodeList
。它返回一个空字符串......
感谢@nvrmnd,我尝试了一下并找到了一种更好的解析器:
VTD-XML
这是一个example来自开发商。
但是这个Tutorial好多了...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)