0

次の構造を持つ非常に大きな XML ファイル (~3Gb) があります。

<stuff>
   <list>
     <list-item id="..."> ... </list-item>
     <list-item id="..."> ... </list-item>
     <list-item id="..."> ... </list-item>
     <list-item id="..."> ... </list-item>
     <list-item id="..."> ... </list-item>    
     ....    
   </list>
</stuff>

属性 ID に基づいて要素テキスト全体を格納する必要があります。<list-item id="..."> ... </list-item>インメモリ。Stax でこれを行う簡単な方法はありますか、それとも文字列を手動で作成する必要がありますか?

4

1 に答える 1

1

この状況では、java.util.Scanner ベースのバージョンをお勧めします。

    Pattern pattern = Pattern.compile("<list-item .+</list-item>");
    Scanner sc = new Scanner(new File("test.xml"));
    for (;;) {
        String e = sc.findWithinHorizon(pattern, 0);
        if (e == null) {
            break;
        }
        System.out.println(e);

        // analize element's id, decide what to do with it

    }

かっこいいですね。

于 2012-11-20T09:00:59.910 に答える