さまざまな 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);
}