我有xml页面,我想找到哪个标签包含大多数标签我如何得到我粘贴下面的xml文件数据
<node id="46547591" lat="30.852474" lon="75.8634368" version="1">
<tag k="created_by" v="JOSM" />
</node>
<node id="46547602" lat="30.8525738" lon="75.8634929" version="1">
<tag k="created_by" v="JOSM" />
</node>
<node id="46547607" lat="30.8525862" lon="75.8640606" version="1">
<tag k="created_by" v="JOSM" />
</node>
<node id="46547616" lat="30.8532422" lon="75.8640407" version="1">
<tag k="name" v="Tathgar Jathere" />
<tag k="amenity" v="place_of_worship" />
<tag k="religion" v="sikh" />
<tag k="denomination" v="Devotees of Baba Namdev" />
</node>
正如您可以看到上面的数据,标签的最大数量是最后一个节点标签,我想计算标签的数量。 请尽快帮助我
答案 0 :(得分:2)
选择<node>
元素,并为每个元素比较其中<tag>
个元素的数量。
示例代码
String htmlString = "<node id=\"46547591\" lat=\"30.852474\" lon=\"75.8634368\" version=\"1\"> \r\n" +
"<tag k=\"created_by\" v=\"JOSM\" /> \r\n" +
"</node>\r\n" +
"<node id=\"46547602\" lat=\"30.8525738\" lon=\"75.8634929\" version=\"1\"> \r\n" +
"<tag k=\"created_by\" v=\"JOSM\" /> \r\n" +
"</node>\r\n" +
"<node id=\"46547607\" lat=\"30.8525862\" lon=\"75.8640606\" version=\"1\"> \r\n" +
"<tag k=\"created_by\" v=\"JOSM\" /> \r\n" +
"</node>\r\n" +
"<node id=\"46547616\" lat=\"30.8532422\" lon=\"75.8640407\" version=\"1\"> \r\n" +
"<tag k=\"name\" v=\"Tathgar Jathere\" /> \r\n" +
"<tag k=\"amenity\" v=\"place_of_worship\" /> \r\n" +
"<tag k=\"religion\" v=\"sikh\" /> \r\n" +
"<tag k=\"denomination\" v=\"Devotees of Baba Namdev\" /> \r\n" +
"</node>";
Document doc = Jsoup.parse(htmlString);
Element maxTags=null;
for (Element node : doc.select("node")) {
Elements tagElements = node.select("tag");
if(tagElements.size()>0){
maxTags = maxTags==null || maxTags.select("tag").size()<tagElements.size() ? node : maxTags;
}
}
System.out.println("Maximum number of tags in a node: " + maxTags.select("tag").size());
System.out.println("Node with maximum number of tags:\n\t" + maxTags.toString().replace("\n", "\n\t"));
<强>输出强>
Maximum number of tags in a node: 4
Node with maximum number of tags:
<node id="46547616" lat="30.8532422" lon="75.8640407" version="1">
<tag k="name" v="Tathgar Jathere" />
<tag k="amenity" v="place_of_worship" />
<tag k="religion" v="sikh" />
<tag k="denomination" v="Devotees of Baba Namdev" />
</node>
答案 1 :(得分:0)
文档的最外层元素(“文档元素”)将始终包含比任何其他元素更多的标记。