如何获取属性内容Jsoup?

时间:2015-01-26 12:22:44

标签: java html parsing jsoup

我有

 <meta itemprop="datePublished" content="2015-01-26 12:37:00">

我想选择内容。我尝试没有成功:

Document doc = Jsoup.connect("http://www.somesite.com/index.html").get();
Element link= doc.select("meta").first(); 
String contetn= link.attr("content");

但是在我的HTML中我有:

<div style="overflow: visible;" itemscope="" itemtype="http://schema.org/Article">
<meta itemprop="url" content="http://www.somesite.com/index.html">
<meta itemprop="headline" content="some text">
<meta itemprop="datePublished" content="2015-01-26 12:37:00">
<meta itemprop="dateModified" content="2015-01-26 14:03:16">

你可以看到我搜索3-td标签元,我无法选择它。

1 个答案:

答案 0 :(得分:1)

Element link= doc.select("meta").first(); 

这将只选择找到的第一个meta - 元素;因为你的第二个html中有多个,你会得到错误的结果。

但这是示例

final String html = "<div style=\"overflow: visible;\" itemscope=\"\" itemtype=\"http://schema.org/Article\">\n"
        + "<meta itemprop=\"url\" content=\"http://www.somesite.com/index.html\">\n"
        + "<meta itemprop=\"headline\" content=\"some text\">\n"
        + "<meta itemprop=\"datePublished\" content=\"2015-01-26 12:37:00\">\n"
        + "<meta itemprop=\"dateModified\" content=\"2015-01-26 14:03:16\">";

Document doc = Jsoup.parse(html);

Element meta = doc.select("meta[itemprop=datePublished]").first();
String content = meta.attr("content");

System.out.println(content);

输出: 2015-01-26 12:37:00

这将选择所有meta - 属性itemprop和属性值datePublished的元素。从所有发现,只是第一个被采取。最后,从单个元素中,您可以获得content - 属性的值。