それぞれが最大 500 MB の大きな xml ファイルから読み取る必要があります。バッチは通常、実行ごとに 500 個のそのようなファイルを処理します。そこからテキスト ノードを抽出すると同時に、そこから xml ノードを抽出する必要があります。使いやすいようにJavaでxpath DOMを使用しましたが、リソースが限られているため、メモリの問題により機能しません。
現在、Java で SAX または Stax を使用するつもりです。テキスト ノードは簡単に抽出できますが、sax を使用して xml から xml ノードを抽出する方法がわかりません。
サンプル:
<?xml version="1.0"?>
<Library>
<Book name = "ABC">
<Author>John</Author>
<PrintingCompanyDT><Printer>Sam</Printer><Printmachine>Laser</Printmachine>
<AssocPrint>Oreilly</AssocPrint> </PrintingCompanyDT>
</Book>
<Book name = "123">
<Author>Mason</Author>
<PrintingCompanyDTv<Printervkelly</Printer><Printmachine>DOTPrint</Printmachine>
<AssocPrint>Oxford</AssocPrint> </PrintingCompanyDT>
</Book>
</Library>
期待される結果: 1)本: ABC:
著者:John
PrintCompany Detail XML:
<PrintingCompanyDT>
<Printer>Sam</Printer>
<Printmachine>Laser</Printmachine>
<AssocPrint>Oreilly</AssocPrint>
</PrintingCompanyDT>
2) 本: 123
著者: Mason
PrintCompany 詳細 XML:
<PrintingCompanyDT>
<Printer>kelly</Printer>
<Printmachine>DOTPrint</Printmachine>
<AssocPrint>Oxford</AssocPrint>
</PrintingCompanyDT>
public void characters(char ch[], int start, int length) メソッドで通常の方法で文字を追加しようとすると、次のようになります
1)Book: ABC:
Author:John
PrintCompany Detail XML :
Sam
Laser
Oreilly
正確にコンテンツとスペース。
javaのSAXまたはStaXパーサーを介してxmlファイルからそのままxmlノードを抽出する方法を誰かが提案できますか?