0

さまざまな XML ファイルを HTTP サーブレットに読み込む方法を理解しようとしています。XML ファイルはすべてデータ テーブルを表します。これを行う最善の方法は何ですか?特定の数の列にロックされたり、列の名前を知ったりすることを避けようとしています。

データを保存する最善の方法もわかりません.Javaで利用できるデータオブジェクトにあまり慣れていません。多次元配列またはリストのリストを考えていました。

アドバイスありがとうございます

w3schools の XML ファイルは次のようになります。

<CATALOG>
  <CD>
    <TITLE>Empire Burlesque</TITLE>
    <ARTIST>Bob Dylan</ARTIST>
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
  </CD>
  <CD>
    <TITLE>Hide your heart</TITLE>
    <ARTIST>Bonnie Tyler</ARTIST>
    <COUNTRY>UK</COUNTRY>
    <COMPANY>CBS Records</COMPANY>
    <PRICE>9.90</PRICE>
    <YEAR>1988</YEAR>
  </CD>
</CATALOG>

またはこれ:

<fruits>
  <fruit>
    <name>orange</name>
  </fruit>
  <fruit>
    <name>grapes</name>
  </fruit>
  <fruit>
    <name>bananas</name>
  </fruit>
</fruits>

最終的に JDOM を使用し、文字列のリストのリストを作成してデータを格納しました。コードは以下のとおりです。アドバイス/フィードバックをお待ちしております。ありがとう!

    ArrayList<ArrayList<String>> dataList = new ArrayList<ArrayList<String>>();

    SAXBuilder builder = new SAXBuilder();
    URL url = new URL("http://localhost/test/test.xml");     
    InputStream stream = url.openStream();

    Document document = null;         

    try {
        document = builder.build(stream);
    } 
    catch (JDOMException e) {
    }

    // Get Root Element and name
    Element root = document.getRootElement();
    String rootName = root.getName();

    // Get Second Level Elements, the rows of the data table
    List<Element> items = root.getChildren(); 

    // Get column names, using the first element
    List<Element> firstItem = items.get(0).getChildren();
    ArrayList<String> colNames =  new ArrayList<String>();
    for (Element col : firstItem){
        colNames.add(col.getName());
    }
    dataList.add(colNames);

    // Get data
    for (Element item : items) {
        ArrayList<String> row = new ArrayList<String>();
        for (Element col : item.getChildren()) {
            row.add(col.getText());
        }
        dataList.add(row);
    }
4

1 に答える 1

1

明らかに多くのアプローチがあります...

XML を読み取るための私のお気に入りのオープン ソース Java ライブラリはJDOMです。

表形式のデータを格納するための私のお気に入りの一般的な構造は、文字列のリストのリストです。これが私が通常それらを定義する方法です。リスト> myData = 新しい ArrayList>();

于 2013-03-22T22:17:49.427 に答える