0

jsoup を使用してこの xml ドキュメント内のデータにアクセスするにはどうすればよいですか?

具体的には F データ、つまり F="11"

私が試したことでは、900、1080、1260、0、180、360 などのデータしか返されませんでした。

<DV dataDate="2013-11-11T20:00:00Z" type="Forecast">
<Location i="3604" lat="51.708" lon="-5.055" name="MILFORD HAVEN C.B." country="WALES" continent="EUROPE">
<Period type="Day" value="2013-11-11Z">
<Rep D="W" F="11" G="18" H="100" Pp="15" S="9" T="13" V="MO" W="8" U="1">900</Rep>
<Rep D="W" F="12" G="18" H="100" Pp="52" S="7" T="13" V="VP" W="11" U="0">1080</Rep>
<Rep D="NNW" F="11" G="9" H="96" Pp="59" S="4" T="12" V="VG" W="12" U="0">1260</Rep>
</Period>
<Period type="Day" value="2013-11-12Z">
<Rep D="NW" F="9" G="13" H="88" Pp="80" S="7" T="11" V="VG" W="15" U="0">0</Rep>
<Rep D="NW" F="9" G="13" H="88" Pp="13" S="9" T="11" V="VG" W="7" U="0">180</Rep>
<Rep D="NNW" F="7" G="18" H="86" Pp="2" S="9" T="9" V="VG" W="0" U="0">360</Rep>
<Rep D="NNW" F="7" G="20" H="83" Pp="0" S="11" T="10" V="VG" W="1" U="1">540</Rep>

ご協力いただきありがとうございます。

4

1 に答える 1

2

最初に xml を解析します。

String xml = "<DV dataDate='2013-11-11T20:00:00Z'....";
Document doc = Jsoup.parse(xml, "", Parser.xmlParser());

その後、基本的に、html ドキュメントの場合と同じようにドキュメントをトラバースできます。たとえば、すべての<rep>タグを選択して F データを印刷する場合:

Elements rep = doc.select("rep");
for (Element e : rep) {
    System.out.println(e.attr("f"));
}

出力します:

11
12
11
9
9
7
7

4 番目の F 値のみを選択するには: rep.get(3).attr("f")9 になります。


アップデート:

最初にリモートファイルを取得してからString、上記のコードを通常どおり使用できます。例えば:

String xml = Jsoup.connect("http://datapoint.metoffice.gov.uk/public/data/val/wxfcs/all/xml/3604?res=3hourly&key=2dd5950b-91e1-4671-9d83-625f2ae9cbf5").get().toString();

Document doc = Jsoup.parse(xml, "", Parser.xmlParser());
于 2013-11-12T00:19:14.063 に答える