0

更准确地说,我需要提取页面的所有图像映射。

格式良好的图像映射定义如下:

<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”属性与 any 的“usemap”属性不对应的那些<img>

是否可以避免选择所有<img>具有“usemap”属性的<map>元素和所有具有“name”属性的元素并一一比较?

在这种情况下,xpath 可以执行类似的操作

 //map[concat('#', @name) = //img/@usemap]"

有没有等价的?

提前致谢

问候

科伊

4

1 回答 1

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
        }
    }
于 2013-06-18T22:32:06.977 回答