最近在用jsoup解析xml时,发现了一个版本问题。
比如以下这段xml:
<Countrys>
<Country CountryId="0001" CountryName="中国大陆">
<Province ProvinceId="0100" ProvinceName="北京">
<City CityId="0101" CityName="北京"></City>
</Province>
<Province ProvinceId="0200" ProvinceName="上海">
<City CityId="0201" CityName="上海"></City>
</Province>
<Province ProvinceId="0300" ProvinceName="天津">
<City CityId="0301" CityName="天津"></City>
</Province>
</Country>
<Country CountryId="0002" CountryName="中国香港">
<Province ProvinceId="3200" ProvinceName="香港">
<City CityId="3201" CityName="香港"></City>
</Province>
</Country>
</Countrys>
获取代码:
Document doc = Jsoup.parse(text);
Elements countrys = doc.select("Country");
for (Element country : countrys) { // 取出国家或地区
String CountryId = country.attr("CountryId");
Elements provinces = country.getElementsByTag("Province");
for (Element province : provinces) { // 取出省份
String provinceId = province.attr("ProvinceId");
String provinceName = province.attr("ProvinceName");
System.out.println("provinceId:" + provinceId + ",provinceName:" + provinceName);
}
System.out.println("CountryId:" + CountryId + "");
System.out.println("------------------------");
}
在jsoup1.10.3 版本的运行结果:
在jsoup1.8.2的运行结果:
相同的代码,在两个版本有两个不同的结果,1.8.2的结果才是正确的。
具体原因,还需深入查查,暂且记在这里。