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 回答