Example usage for org.jsoup.nodes Element select

List of usage examples for org.jsoup.nodes Element select

Introduction

In this page you can find the example usage for org.jsoup.nodes Element select.

Prototype

public Elements select(String cssQuery) 

Source Link

Document

Find elements that match the Selector CSS query, with this element as the starting context.

Usage

From source file:com.adarshahd.indianrailinfo.donate.PNRStat.java

private void createTableLayoutPsnDtls() {
    if (mPageResult.contains("FLUSHED PNR / ") || mPageResult.contains("Invalid PNR")) {
        mTextViewPNRSts.setText("The PNR entered is either invalid or expired! Please check.");
        mFrameLayout.removeAllViews();//from w  ww .j  a  va  2s.  c  om
        mFrameLayout.addView(mTextViewPNRSts);
        mStrPassengerDetails = null;
        return;
    }
    if (mPageResult.contains("Connectivity Failure") || mPageResult.contains("try again")) {
        mTextViewPNRSts.setText("Looks like server is busy or currently unavailable. Please try again later!");
        mFrameLayout.removeAllViews();
        mFrameLayout.addView(mTextViewPNRSts);
        mStrPassengerDetails = null;
        return;
    }
    List<List<String>> passengersList;
    if (mPassengerDetails == null || mPassengerDetails.getPNR() != mPNRNumber) {
        Elements elements = Jsoup.parse(mPageResult).select("table tr td:containsOwn(S. No.)");
        Iterator iterator = null;
        try {
            iterator = elements.first().parent().parent().getElementsByTag("tr").iterator();
        } catch (Exception e) {
            Log.i("PNRStat", mPageResult);
            return;
        }
        passengersList = new ArrayList<List<String>>();
        List<String> list;
        Element tmp;
        while (iterator.hasNext()) {
            tmp = (Element) iterator.next();
            if (tmp.toString().contains("Passenger")) {
                list = new ArrayList<String>();
                list.add(tmp.select("td").get(0).text());
                list.add(tmp.select("td").get(1).text());
                list.add(tmp.select("td").get(2).text());
                if (!tmp.select("td").get(2).text().toUpperCase().contains("CNF")
                        && !tmp.select("td").get(2).text().toUpperCase().contains("CAN")) {
                    isWaitingList = true;
                }
                passengersList.add(list);
            }
        }
        mPassengerDetails = new PassengerDetails(passengersList, mPNRNumber);
    } else {
        passengersList = mPassengerDetails.getPassengerList();
    }

    mTableLayoutPsn = new TableLayout(mActivity);
    TableRow row;
    TextView tv1, tv2, tv3, tv4;
    mStrPassengerDetails = new ArrayList<String>();
    int current;
    mTableLayoutPsn.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT));
    for (int i = 0; i < passengersList.size(); ++i) {
        current = i + 1;
        row = new TableRow(mActivity);
        row.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT));
        tv1 = new TextView(mActivity);
        tv2 = new TextView(mActivity);
        tv3 = new TextView(mActivity);
        tv4 = new TextView(mActivity);

        tv1.setText("" + (i + 1) + ".");
        tv2.setText("   " + passengersList.get(i).get(0));
        tv3.setText("   " + passengersList.get(i).get(1));
        tv4.setText("   " + passengersList.get(i).get(2));

        tv1.setTextAppearance(mActivity, android.R.style.TextAppearance_DeviceDefault_Medium);
        tv2.setTextAppearance(mActivity, android.R.style.TextAppearance_DeviceDefault_Medium);
        tv3.setTextAppearance(mActivity, android.R.style.TextAppearance_DeviceDefault_Medium);
        tv4.setTextAppearance(mActivity, android.R.style.TextAppearance_DeviceDefault_Medium);

        tv1.setPadding(10, 10, 10, 10);
        tv2.setPadding(10, 10, 10, 10);
        tv3.setPadding(10, 10, 10, 10);
        tv4.setPadding(10, 10, 10, 10);

        row.addView(tv1);
        row.addView(tv2);
        row.addView(tv3);
        row.addView(tv4);

        row.setBackgroundResource(R.drawable.card_background);
        row.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
        mTableLayoutPsn.addView(row);
        String strPsn = "" + current + ". " + passengersList.get(i).get(0) + "   "
                + passengersList.get(i).get(1) + "   " + passengersList.get(i).get(2);
        mStrPassengerDetails.add(strPsn);
    }
}

From source file:me.vertretungsplan.parser.UntisCommonParser.java

void parseDay(SubstitutionScheduleDay day, Element next, SubstitutionSchedule v, String klasse)
        throws JSONException, CredentialInvalidException {
    if (next.className().equals("subst") || next.select(".list").size() > 0
            || next.text().contains("Vertretungen sind nicht freigegeben")
            || next.text().contains("Keine Vertretungen")) {
        //Vertretungstabelle
        if (next.text().contains("Vertretungen sind nicht freigegeben")) {
            return;
        }//from  www  .  j a v a  2s . com
        parseSubstitutionScheduleTable(next, scheduleData.getData(), day, klasse);
    } else {
        //Nachrichten
        parseMessages(next, day);
        next = next.nextElementSibling().nextElementSibling();
        parseSubstitutionScheduleTable(next, scheduleData.getData(), day, klasse);
    }
    v.addDay(day);
}

From source file:de.geeksfactory.opacclient.apis.Open.java

protected DetailledItem parse_result(Document doc) {
    DetailledItem item = new DetailledItem();

    // Title and Subtitle
    item.setTitle(doc.select("span[id$=LblShortDescriptionValue]").text());
    String subtitle = doc.select("span[id$=LblSubTitleValue]").text();
    if (!subtitle.equals("")) {
        item.addDetail(new Detail(stringProvider.getString(StringProvider.SUBTITLE), subtitle));
    }/*from   w  ww . j a  v  a 2  s .  c om*/

    // Cover
    if (doc.select("input[id$=mediumImage]").size() > 0) {
        item.setCover(doc.select("input[id$=mediumImage]").attr("src"));
    } else if (doc.select("img[id$=CoverView_Image]").size() > 0) {
        item.setCover(getCoverUrl(doc.select("img[id$=CoverView_Image]").first()));
    }

    // ID
    item.setId(doc.select("input[id$=regionmednr]").val());

    // Description
    if (doc.select("span[id$=ucCatalogueContent_LblAnnotation]").size() > 0) {
        String name = doc.select("span[id$=lblCatalogueContent]").text();
        String value = doc.select("span[id$=ucCatalogueContent_LblAnnotation]").text();
        item.addDetail(new Detail(name, value));
    }
    // Details
    for (Element detail : doc.select("div[id$=CatalogueDetailView] .spacingBottomSmall:has(span+span)")) {
        String name = detail.select("span").get(0).text().replace(": ", "");
        String value = detail.select("span").get(1).text();
        item.addDetail(new Detail(name, value));
    }

    // Copies
    Element table = doc.select("table[id$=grdViewMediumCopies]").first();
    Elements trs = table.select("tr");
    List<String> columnmap = new ArrayList<>();
    for (Element th : trs.first().select("th")) {
        columnmap.add(getCopyColumnKey(th.text()));
    }

    DateTimeFormatter fmt = DateTimeFormat.forPattern("dd.MM.yyyy").withLocale(Locale.GERMAN);
    for (int i = 1; i < trs.size(); i++) {
        Elements tds = trs.get(i).select("td");
        Copy copy = new Copy();
        for (int j = 0; j < tds.size(); j++) {
            if (columnmap.get(j) == null)
                continue;
            String text = tds.get(j).text().replace("\u00a0", "");
            if (text.equals(""))
                continue;
            copy.set(columnmap.get(j), text, fmt);
        }
        item.addCopy(copy);
    }

    return item;
}

From source file:de.geeksfactory.opacclient.apis.Zones22.java

private SearchRequestResult parse_search(String html, int page) throws OpacErrorException {
    Document doc = Jsoup.parse(html);
    doc.setBaseUri(opac_url + "/APS_PRESENT_BIB");

    if (doc.select("#ErrorAdviceRow").size() > 0) {
        throw new OpacErrorException(doc.select("#ErrorAdviceRow").text().trim());
    }/*from  w w  w.j a  v a 2  s  .c  om*/

    int results_total = -1;

    if (doc.select(".searchHits").size() > 0) {
        results_total = Integer.parseInt(
                doc.select(".searchHits").first().text().trim().replaceAll(".*\\(([0-9]+)\\).*", "$1"));
    }

    if (doc.select(".pageNavLink").size() > 0) {
        searchobj = doc.select(".pageNavLink").first().attr("href").split("\\?")[0];
    }

    Elements table = doc.select("#BrowseList > tbody > tr");
    List<SearchResult> results = new ArrayList<SearchResult>();
    for (int i = 0; i < table.size(); i++) {
        Element tr = table.get(i);
        SearchResult sr = new SearchResult();

        String typetext = tr.select(".SummaryMaterialTypeField").text().replace("\n", " ").trim();
        if (data.has("mediatypes")) {
            try {
                sr.setType(MediaType.valueOf(data.getJSONObject("mediatypes").getString(typetext)));
            } catch (JSONException e) {
                sr.setType(defaulttypes.get(typetext));
            } catch (IllegalArgumentException e) {
                sr.setType(defaulttypes.get(typetext));
            }
        } else {
            sr.setType(defaulttypes.get(typetext));
        }

        if (tr.select(".SummaryImageCell img[id^=Bookcover]").size() > 0) {
            String imgUrl = tr.select(".SummaryImageCell img[id^=Bookcover]").first().attr("src");
            sr.setCover(imgUrl);
        }

        String desc = "";
        Elements children = tr.select(".SummaryDataCell tr, .SummaryDataCellStripe tr");
        int childrennum = children.size();
        boolean haslink = false;

        for (int ch = 0; ch < childrennum; ch++) {
            Element node = children.get(ch);
            if (node.select(".SummaryFieldLegend").text().equals("Titel")) {
                desc += "<b>" + node.select(".SummaryFieldData").text().trim() + "</b><br />";

            } else if (node.select(".SummaryFieldLegend").text().equals("Verfasser")
                    || node.select(".SummaryFieldLegend").text().equals("Jahr")) {
                desc += node.select(".SummaryFieldData").text().trim() + "<br />";
            }

            if (node.select(".SummaryFieldData a.SummaryFieldLink").size() > 0 && haslink == false) {
                String href = node.select(".SummaryFieldData a.SummaryFieldLink").attr("abs:href");
                Map<String, String> hrefq = getQueryParamsFirst(href);
                sr.setId(hrefq.get("no"));
                haslink = true;
            }
        }
        if (desc.endsWith("<br />"))
            desc = desc.substring(0, desc.length() - 6);
        sr.setInnerhtml(desc);
        sr.setNr(i);

        results.add(sr);
    }

    return new SearchRequestResult(results, results_total, page);
}

From source file:de.geeksfactory.opacclient.apis.Zones22.java

private DetailledItem parse_result(String id, String html) throws IOException {
    Document doc = Jsoup.parse(html);

    DetailledItem result = new DetailledItem();
    result.setTitle("");
    boolean title_is_set = false;

    result.setId(id);/* ww w . ja  v a2  s. co m*/

    Elements detaildiv = doc.select("div.record-item-new");

    Elements detailtrs1 = doc.select(".DetailDataCell table table:not(.inRecordHeader) tr");
    for (int i = 0; i < detailtrs1.size(); i++) {
        Element tr = detailtrs1.get(i);
        int s = tr.children().size();
        if (tr.child(0).text().trim().equals("Titel") && !title_is_set) {
            result.setTitle(tr.child(s - 1).text().trim());
            title_is_set = true;
        } else if (s > 1) {
            Element valchild = tr.child(s - 1);
            if (valchild.select("table").isEmpty()) {
                String val = valchild.text().trim();
                if (val.length() > 0)
                    result.addDetail(new Detail(tr.child(0).text().trim(), val));
            }
        }
    }

    for (Element a : doc.select("a.SummaryActionLink")) {
        if (a.text().contains("Vormerken")) {
            result.setReservable(true);
            result.setReservation_info(a.attr("href"));
        }
    }

    if (!detaildiv.isEmpty()) {
        for (int i = 0; i < detaildiv.size(); i++) {
            Element dd = detaildiv.get(i);
            String text = "";
            for (Node node : dd.childNodes()) {
                if (node instanceof TextNode) {
                    String snip = ((TextNode) node).text();
                    if (snip.length() > 0)
                        text += snip;
                } else if (node instanceof Element) {
                    if (((Element) node).tagName().equals("br"))
                        text += "\n";
                    else {
                        String snip = ((Element) node).text().trim();
                        if (snip.length() > 0)
                            text += snip;
                    }
                }
            }
            result.addDetail(new Detail("", text));
        }
    }

    if (doc.select("span.z3988").size() > 0) {
        // Sometimes there is a <span class="Z3988"> item which provides
        // data in a standardized format.
        String z3988data = doc.select("span.z3988").first().attr("title").trim();
        for (String pair : z3988data.split("\\&")) {
            String[] nv = pair.split("=", 2);
            if (nv.length == 2) {
                if (!nv[1].trim().equals("")) {
                    if (nv[0].equals("rft.btitle") && result.getTitle().length() == 0) {
                        result.setTitle(nv[1]);
                    } else if (nv[0].equals("rft.atitle") && result.getTitle().length() == 0) {
                        result.setTitle(nv[1]);
                    } else if (nv[0].equals("rft.au")) {
                        result.addDetail(new Detail("Author", nv[1]));
                    }
                }
            }
        }
    }

    Elements copydivs = doc.select(".DetailDataCell div[id^=stock_]");
    String pop = "";
    for (int i = 0; i < copydivs.size(); i++) {
        Element div = copydivs.get(i);

        if (div.attr("id").startsWith("stock_head")) {
            pop = div.text().trim();
            continue;
        }

        Map<String, String> copy = new HashMap<String, String>();

        // This is getting very ugly - check if it is valid for libraries
        // which are not
        // Hamburg.
        int j = 0;
        for (Node node : div.childNodes()) {
            try {
                if (node instanceof Element) {
                    if (((Element) node).tag().getName().equals("br")) {
                        copy.put(DetailledItem.KEY_COPY_BRANCH, pop);
                        result.addCopy(copy);
                        j = -1;
                    } else if (((Element) node).tag().getName().equals("b") && j == 1) {
                        copy.put(DetailledItem.KEY_COPY_LOCATION, ((Element) node).text());
                    } else if (((Element) node).tag().getName().equals("b") && j > 1) {
                        copy.put(DetailledItem.KEY_COPY_STATUS, ((Element) node).text());
                    }
                    j++;
                } else if (node instanceof TextNode) {
                    if (j == 0)
                        copy.put(DetailledItem.KEY_COPY_DEPARTMENT, ((TextNode) node).text());
                    if (j == 2)
                        copy.put(DetailledItem.KEY_COPY_BARCODE,
                                ((TextNode) node).getWholeText().trim().split("\n")[0].trim());
                    if (j == 6) {
                        String text = ((TextNode) node).text().trim();
                        copy.put(DetailledItem.KEY_COPY_RETURN, text.substring(text.length() - 10));
                    }
                    j++;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    return result;
}

From source file:me.vertretungsplan.parser.UntisCommonParser.java

SubstitutionScheduleDay parseMonitorDay(Element doc, JSONObject data)
        throws JSONException, CredentialInvalidException {
    SubstitutionScheduleDay day = new SubstitutionScheduleDay();
    String date = doc.select(".mon_title").first().text().replaceAll(" \\(Seite \\d+ / \\d+\\)", "");
    day.setDateString(date);//w w w . ja va  2  s .c  o  m
    day.setDate(ParserUtils.parseDate(date));

    if (!scheduleData.getData().has(PARAM_LAST_CHANGE_SELECTOR)) {
        String lastChange = findLastChange(doc, scheduleData);
        day.setLastChangeString(lastChange);
        day.setLastChange(ParserUtils.parseDateTime(lastChange));
    }

    // NACHRICHTEN
    if (doc.select("table.info").size() > 0) {
        parseMessages(doc.select("table.info").first(), day);
    }

    // VERTRETUNGSPLAN
    if (doc.select("table:has(tr.list)").size() > 0) {
        parseSubstitutionScheduleTable(doc.select("table:has(tr.list)").first(), data, day);
    }

    return day;
}

From source file:cw.kop.autobackground.files.DownloadThread.java

private void downloadPicasa(String data, Source source) {

    if (isInterrupted()) {
        return;/*from   ww w  .java2  s  .com*/
    }

    if (data.contains("user/")) {
        data = data.substring(data.indexOf("user/"));
    } else {
        return;
    }

    HttpGet httpGet = new HttpGet("https://picasaweb.google.com/data/feed/api/" + data + "?imgmax=d");
    httpGet.setHeader("Authorization", "OAuth " + AppSettings.getGoogleAccountToken());
    httpGet.setHeader("X-GData-Client", ApiKeys.PICASA_CLIENT_ID);
    httpGet.setHeader("GData-Version", "2");

    String response = getResponse(httpGet);
    if (response == null) {
        return;
    }

    Document linkDoc = Jsoup.parse(response);

    List<String> imageList = new ArrayList<>();

    for (Element link : linkDoc.select("media|group")) {
        imageList.add(link.select("media|content").attr("url"));
    }

    startDownload(imageList, imageList, source);

}

From source file:com.dajodi.scandic.JSoupScraper.java

@Override
public MemberInfo scrapeMemberInfo(InputStream inStream) {

    Document doc;/*from w w  w.  j ava 2 s  . c om*/
    try {
        doc = Jsoup.parse(inStream, HTTP.UTF_8, "");

        Element accountOverview = doc.getElementById("AccountOverview");

        String points = getStringFromNode(accountOverview, "ctl00_MainBodyRegion_AccountOverview1_totalPoints",
                "?");
        String membershipNumber = getStringFromNode(accountOverview,
                "ctl00_MainBodyRegion_AccountOverview1_membershipNo", "?");
        String membershipLevel = getStringFromNode(accountOverview,
                "ctl00_MainBodyRegion_AccountOverview1_memberLevel", "?");
        String nights = getStringFromNode(accountOverview, "ctl00_MainBodyRegion_AccountOverview1_strngNights",
                "?");

        int qualNights = Util.UNKNOWN_NIGHTS;

        if ("?".equals(nights)) {
            boolean noTransactions = accountOverview
                    .select("#ctl00_MainBodyRegion_AccountOverview1_NoTransaction").size() == 1;
            if (noTransactions) {
                // as expected
                qualNights = Util.NO_NIGHTS;
            } else {
                Log.d("somethign really strange, number of nights could not be found");
            }
        } else {
            qualNights = Util.parseNumNights(nights);
        }

        MemberInfo.Level level = MemberInfo.Level.fromEnglishText(membershipLevel);

        List<ScandicStay> stays = getStays(accountOverview);

        MemberInfo memberInfo = new MemberInfo();
        memberInfo.setMembershipId(membershipNumber);
        memberInfo.setLevel(level);
        memberInfo.setPoints(Util.parseInt(points, Util.UNKNOWN_POINTS));
        memberInfo.setQualifyingNights(qualNights);
        memberInfo.setStaysLast12Months(stays);
        memberInfo.setLastUpdated(new Date());

        return memberInfo;

    } catch (IOException e) {
        throw new ScandicHtmlException(e);
    }

}

From source file:com.aestasit.markdown.slidery.converters.TextTemplateConverter.java

private void renderSyntaxHighlightingHtml(final Document slidesDocument, final Configuration config) {
    for (Element code : slidesDocument.select("code")) {
        Charset encoding = config.getInputEncoding();
        ByteArrayInputStream input = new ByteArrayInputStream(code.text().getBytes(encoding));
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        String className = code.className();
        if (StringUtils.isBlank(className)) {
            className = "java";
        }/*w w w  .  j a va 2 s.  c  o  m*/
        Renderer renderer = XhtmlRendererFactory.getRenderer(className);
        if (renderer != null) {
            try {
                renderer.highlight("slidery", input, out, encoding.name(), true);
                code.html(new String(out.toByteArray(), encoding));
                code.select("br").remove();
                removeComments(code);
                code.html(code.html().trim());
                Element parent = code.parent();
                if (parent.tagName() == "pre") {
                    parent.addClass("code");
                }
            } catch (IOException e) {
                // TODO: Handle exception
            }
        }
    }
}

From source file:me.vertretungsplan.parser.UntisCommonParser.java

void parseMultipleMonitorDays(SubstitutionSchedule v, Document doc, JSONObject data)
        throws JSONException, CredentialInvalidException {
    if (doc.select(".mon_head").size() > 1) {
        for (int j = 0; j < doc.select(".mon_head").size(); j++) {
            Document doc2 = Document.createShell(doc.baseUri());
            doc2.body().appendChild(doc.select(".mon_head").get(j).clone());
            Element next = doc.select(".mon_head").get(j).nextElementSibling();
            if (next != null && next.tagName().equals("center")) {
                doc2.body().appendChild(next.select(".mon_title").first().clone());
                if (next.select("table:has(tr.list)").size() > 0) {
                    doc2.body().appendChild(next.select("table:has(tr.list)").first());
                }/*w  w w .  j  av  a 2s  . c  om*/
                if (next.select("table.info").size() > 0) {
                    doc2.body().appendChild(next.select("table.info").first());
                }
            } else if (doc.select(".mon_title").size() - 1 >= j) {
                doc2.body().appendChild(doc.select(".mon_title").get(j).clone());
                doc2.body().appendChild(doc.select("table:has(tr.list)").get(j).clone());
            } else {
                continue;
            }
            SubstitutionScheduleDay day = parseMonitorDay(doc2, data);
            v.addDay(day);
        }
    } else if (doc.select(".mon_title").size() > 1) {
        for (int j = 0; j < doc.select(".mon_title").size(); j++) {
            Document doc2 = Document.createShell(doc.baseUri());
            doc2.body().appendChild(doc.select(".mon_title").get(j).clone());
            Element next = doc.select(".mon_title").get(j).nextElementSibling();
            while (next != null && !next.tagName().equals("center")) {
                doc2.body().appendChild(next);
                next = doc.select(".mon_title").get(j).nextElementSibling();
            }
            SubstitutionScheduleDay day = parseMonitorDay(doc2, data);
            v.addDay(day);
        }
    } else {
        SubstitutionScheduleDay day = parseMonitorDay(doc, data);
        v.addDay(day);
    }
}