【发布时间】:2017-07-31 08:48:57
【问题描述】:
我正在使用 XPath 从 XML 文件中提取大块。我的 xml 文件很大,它们来自 PubMed。我的文件类型的一个例子是:
ftp://ftp.ncbi.nlm.nih.gov/pubmed/baseline/medline17n0001.xml.gz
所以,通过使用
Node result = (Node)xPath.evaluate("PubmedArticleSet/PubmedArticle[MedlineCitation/PMID = "+PMIDtoSearch+"]", doc, XPathConstants.NODE);
我通过 PMIDtoSearch 获得了这篇文章,所以它非常完美。但这需要很多时间。我必须做大约 800.000 次,所以使用这个解决方案需要两个多月的时间。有些块超过400行,每个xml文件超过400万行。
我也尝试过类似getElementsByTagName 函数的解决方案,但所需时间几乎相同。
您知道如何改进解决方案吗?
谢谢。
【问题讨论】:
-
我会编写 XQuery 来获取 GZIP,将其解压缩并存储到存在数据库中。然后针对该存储的文档编写 Xquery。
-
您的连接可能受到网络服务的限制。