Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jsoup-获取仅包含指定属性及其值的HTML标记_Java_Web Scraping_Jsoup - Fatal编程技术网

Java Jsoup-获取仅包含指定属性及其值的HTML标记

Java Jsoup-获取仅包含指定属性及其值的HTML标记,java,web-scraping,jsoup,Java,Web Scraping,Jsoup,我想使用jsoup从只有一些特定属性和值的页面中提取元素。我已经通过了以下提到的方法,但没有一种能很好地解决我的目的: Jsoup的getElementsByAttributesMatching 选择查询的格式如下: doc.select("table[width=100%]").select("table[cellpadding=0]").select("table[cellspacing=0]"); 这个也是: doc.select("table[width=100%][cellpadd

我想使用
jsoup
从只有一些特定属性和值的页面中提取元素。我已经通过了以下提到的方法,但没有一种能很好地解决我的目的:

  • Jsoup的
    getElementsByAttributesMatching

  • 选择查询的格式如下:

    doc.select("table[width=100%]").select("table[cellpadding=0]").select("table[cellspacing=0]");
    
  • 这个也是:

    doc.select("table[width=100%][cellpadding=0][cellspacing=0]");
    
  • 当我使用这些方法时,我得到的元素具有我提到的属性以及其他属性。我想要的是只具有指定属性的元素


    有没有办法通过这个集合?

    您的选择器已经为这3个属性选择了具有特定值的元素。因此,元素至少有3个属性。但是如果它正好有3个属性,那么这些就是您指定的属性

    for (Element el: doc.select("table[width=100%][cellpadding=0][cellspacing=0]"))
        if (el.attributes().size() == 3)
            // Do something
    

    例子
    哈哈哈!简单的技术!只是把基本的东西搞乱了,你就找到了一个很好的解决方案!我应该自己想到这个!!哦,非常感谢!!只是学到了很多新东西!!谢谢!
    Document doc = Jsoup.parse(
        "<table width=100% cellpadding=0 cellspacing=0>OK</table>" +
        "<table width=100% cellpadding=0 cellspacing=0 height=100%>NO</table>");
    
    for (Element el: doc.select("table[width=100%][cellpadding=0][cellspacing=0]"))
        if (el.attributes().size() == 3)
            System.out.println(el.text());
    
    OK