2016-06-11 16 views
1

私はxml formatにある巨大な聖書のデータを持っています。私はアンドロイドの聖書のアプリケーションを作っています。しかし、私のデータは非常に巨大であるように感じます。大きなデータ、どのように巨大なXMLファイルを高速に解析するのですか?

私の研究では、xmlパーサーが必要なタグを取得するまでファイル全体を解析することを読んでいます。誰もがすべてのデータを解析する、より簡単で高速な方法を知っていますか?

+1

はチャンクでそれを解析しますか?すなわち、あなたがタグを予約しなければならない場合、他のタグをスキップし、そこから解析しますか? – SQLiteNoob

+0

@SQLiteNoob素早い返信をありがとう。あなたはどの方法を使うべきかアドバイスをしていただけますか? – Beraki

+1

私はキーとなる質問は、データで何をしたいのですか?解析は終わりの手段にすぎません。 –

答えて

1

SAX解析が適切かもしれデータ抽出ロジックは比較的簡単であるとするとき、前方だけ...あなたは、階層構造やXPathをトラバースの使いやすさと快適さを持つようにしたい場合は、あなたは運が悪いです...

JDOMあるいはDOMが深刻なメモリ使用量の問題を持って、その後...

VTD-XMLは、SAX StAXにはあまりにも複雑なユースケースにまたがるライブラリであり、そしてあまりにもメモリ集約のためのDOMまたはJDOM。

VTD-XMLは、メモリ内のすべてをロードしている間、メモリフットプリントは控えめ1.3倍である〜3〜5倍DOMよりも効率的であるXMLドキュメントのサイズを1.5倍...

また、エクスポートカーソルAPIのようなDOMとXPath 1.0をサポートしています...

Can SAX Parsers use XPath in Java?

1

大規模なXMLファイルを解析するには、SAXパーサーを使用する必要があります。たとえば、あなたがこれを行うことができます:

  File inputFile = new File("input.txt"); 
     SAXParserFactory factory = SAXParserFactory.newInstance(); 
     SAXParser saxParser = factory.newSAXParser(); 
     UserHandler userhandler = new UserHandler(); 
     saxParser.parse(inputFile, userhandler); 
関連する問題