XMLのライブラリを使うほうが汎用性があっていいと思いますが、
形式が決まっているなら以下のように自前で処理してもいいでしょう。
java
1import java.util.LinkedHashMap;
2import java.util.Map;
3
4public class Q120784 {
5
6 static String data =
7 "<TAG\r\n" +
8 "COL1=hoge\r\n" +
9 "DOM=fuga\r\n" +
10 "C=aaaa\r\n" +
11 "LABEL=mega\r\n" +
12 "default=value5\r\n" +
13 "/>\r\n" +
14 "<TAG\r\n" +
15 "COL1=2222\r\n" +
16 "DOM=bbbb\r\n" +
17 "C=cccc\r\n" +
18 "LABEL=seta\r\n" +
19 "default=value1\r\n" +
20 "/>\r\n";
21
22 public static void main(String[] args) {
23 Map<String, String> map = new LinkedHashMap<>();
24 for (String line : data.split("[\r\n]+")) { // 行に分けて順に処理
25 switch (line) {
26 case "<TAG": // 開始時にmapを空にする
27 map.clear();
28 break;
29 case "/>": // 終了時に保持した内容を出力する
30 String prefix = map.get("LABEL");
31 map.forEach((key, value) ->
32 System.out.println(prefix + '.' + key + '=' + value));
33 break;
34 default: // 名前と値を保持する
35 String[] pair = line.split("=");
36 map.put(pair[0], pair[1]);
37 break;
38 }
39 }
40 }
41}
42
実行結果
mega.COL1=hoge
mega.DOM=fuga
mega.C=aaaa
mega.LABEL=mega
mega.default=value5
seta.COL1=2222
seta.DOM=bbbb
seta.C=cccc
seta.LABEL=seta
seta.default=value1
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/09 01:47