The Learner
The Learner

Reputation: 3917

GetValue (JSoup)

<div class="Class-feedbacks">
  <div class="grading class2">
    <div itemtype="http://xx.edu/grading" itemscope="" itemprop="studentgrading">
      <div class="rating">
        <img class="passportphoto" width="1500" height="20" src="http://greg.png" >
        <meta content="4.0" itemprop="gradingvalue">
      </div>
    </div>
    <meta content="2012-09-08" itemprop="gradePublished">
    <span class="date smaller">9/8/2012</span>
  </div>
  <p class="review_comment feedback" itemprop="description">Greg is one the smart person in his batch</p>
</div>

I want to print:

date: 2012-09-08
Feedback : Greg is one the smart person in his batch

I was able to use this as suggested at - Jsoup getting a hyperlink from li

The doc.select(div div divn li ui ...) and get the class feedback.

How should I use the select command to get the values of the above values?

Upvotes: 0

Views: 906

Answers (3)

Aswin
Aswin

Reputation: 559

This is an old question and I might be late, but if anyone else wants to know how to do this easily, the below code will be helpful.

Document doc = Jsoup.parse(html);
// We select the meta tag whose itemprop property has value 'gradePublished'
String date = doc.select("meta[itemprop=gradePublished]").attr("content");
System.out.println("date: "+date);
// Now we select the text inside the p tag with itemprop value 'description'
String feedback = doc.select("p[itemprop=description]").text();
System.out.println("Feedback: "+feedback);

Upvotes: 0

Alain
Alain

Reputation: 722


In one single select ...have you tried the comma Combinator "," ? http://jsoup.org/apidocs/org/jsoup/select/Selector.html

Elements elmts = doc.select("div.Class-feedbacks meta, p")

Element elmtDate = elmts.get(0);
System.out.println("date: " + elmtDate.attr("content"));
Element elmtParag = elmts.get(1);
System.out.println("Feedback: " + elmtParag.text()); 

You should get back 2 elements in your list the date and the feedback after the select.

Upvotes: 0

Nicholas
Nicholas

Reputation: 2205

To get the value of an attribute, use the attr method. E.g.

Elements elements = doc.select("meta");
for(Element e: elements)
  System.out.println(e.attr("content"));

Upvotes: 2

Related Questions