更准确地说,我需要提取页面的所有图像映射
良好形成的图像映射定义如下:
<img src="image.gif" width="145" height="126" alt="My Image" usemap="#mymap">
<map name="mymap">
<area shape="rect" coords="0,0,82,126" href="page1.htm" alt="Area1">
<area shape="circle" coords="90,58,3" href="page2.htm" alt="Area2">
<area shape="circle" coords="124,58,8" href="page3.htm" alt="Area3">
</map>
<map>
元素所需的“name”属性与<img>
的“usemap”属性相关联,并在图像和地图之间创建关系。
如何保持格式正确的<map>
,从而跳过所有“name”属性与任何<img>
的任何“usemap”属性不对应的属性?
是否可以避免选择具有“usemap”属性的所有<img>
元素和具有“name”属性的所有<map>
元素并逐个进行比较?
在这种情况下,xpath可以执行类似
的操作 //map[concat('#', @name) = //img/@usemap]"
有没有相应的?
提前致谢
问候
KOJ
答案 0 :(得分:0)
这应该
Document doc = Jsoup.parse(input, "UTF-8");
Elements mapElements = doc.select("map");
for (Iterator<Element> map = mapElements.iterator(); map.hasNext();)
{
Element element = map.next();
Elements imageElements = doc.getElementsByAttributeValue("usemap", "#" + element.attr("name"));
if(imageElements.size() == 0){
// No <img> corresponds to this <map>, do whatever you like
}
}