0

こんにちは私はJavaで小さなクラスを作成してxmlファイルを文字列として読み取りましたが、私の質問は次のとおりではありません:文字列を追加してPhysical_Order_List_Arrayタグの間にあるものだけを出力する方法

ここにJavaクラスがあります:

public static String getFileContent(String fileName)
    {
        BufferedReader br = null;
        StringBuilder sb = new StringBuilder();
        try {
            br = new BufferedReader(new FileReader(fileName));
        try {
            String s;
            while((s = br.readLine()) != null)
            {
                sb.append(s);
                sb.append("\n");
            }
        }

        finally {
            br.close();
        }
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
        return sb.toString();
    }

これは非常に大きなxmlファイルの一部です:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
.....
.....
.....some content
....here is what I only need 
<Physical_Order_List_Array>
....now I need to get this portion of the code, append string to only output what is beetween these tags, including these tags as well
</Physical_Order_List_Array>
.....
.....
.....

ご回答ありがとうございます

4

2 に答える 2

5

ファイルを文字列として読み取らず、XML パーサーを使用して読み取り、XPath を使用して必要なノードを抽出します。必要なコードを提供する構文解析xpathの両方に関する記事を書きました。

また、「非常に大きい」と定義してください。それはメガバイトですか、それともギガバイトですか? 後者の場合は、SAX パーサーが必要になりますが、これについては説明しません。前者の場合、DOM パーサーは問題ありません。

于 2009-10-14T13:34:39.250 に答える
1

XPath を使用し、//Physical_Order_List_Array のようなものを使用します。自分で XML を解析することもできます (ほとんどの場合、かなり単純なステート マシンで処理できます)。

于 2009-10-14T13:32:11.503 に答える