我使用XPath從XML文件中提取大型塊。我的XML文件很大,它們來自PubMed。我的文件類型的一個例子是:從大型xml文件中提取大型xml塊的最佳方法
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文件有超過4百萬行。
我也嘗試過這樣的解決方案getElementsByTagName
函數,但它幾乎需要相同的時間。
您是否知道如何改進解決方案?
謝謝。
VTD-XML是這個最終的XML解析器我將很快作出貢獻的一段代碼給你。 –
我會編寫XQuery來抓取GZIP,解壓縮並存儲到存在數據庫中。然後針對該存儲文檔編寫Xquery。 –