package com.roboo.like.google.news.content.utils; import java.io.IOException; import java.util.LinkedList; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import android.content.Context; import android.text.TextUtils; public class XCFNewsContentUtils extends BaseNewsContentUtils { @Override public LinkedList<String> getNewsContentDataList(String newsUrl) throws IOException { return getXCFNewsDataList(newsUrl); } public static LinkedList<String> getXCFNewsDataList(String newsUrl) throws IOException { LinkedList<String> data = null; Elements majorElements; Element majorElement = null; String content = ""; Document document = Jsoup.connect(newsUrl).timeout(TIME_OUT).get(); // System.out.println("document = " + document); majorElements = document.getElementsByClass("recipe-full"); if (!majorElements.isEmpty()) { majorElement = majorElements.get(0); if (majorElement != null) { data = new LinkedList<String>(); majorElements = majorElement.getElementsByTag("div"); if (!majorElements.isEmpty()) { for (int i = 0; i < majorElements.size(); i++) { Element subElement = majorElements.get(i); if (subElement.hasClass("recipe-cover")) { content = handlSrc(subElement.attr("style")); data.add(content); } else if (subElement.hasClass("wrapper")) { Elements tmpElements = subElement.getElementsByTag("section"); if (!tmpElements.isEmpty()) { for (int ii = 0; ii < tmpElements.size(); ii++) { switch (ii) { case 0: content = FOUR_BLANK_SPACE + tmpElements.get(ii).text(); data.add(content); break; case 1: Element subsubElement = tmpElements.get(ii); Elements tmptmpElements = subsubElement.siblingElements(); if (!tmptmpElements.isEmpty() && tmptmpElements.size() == 2) { content = "$" + tmptmpElements.get(0).text() + "$"; data.add(content); tmptmpElements = tmptmpElements.get(1).getElementsByTag("li"); if (!tmptmpElements.isEmpty()) { for (int iii = 0; iii < tmptmpElements.size(); iii++) { content = tmptmpElements.get(iii).text(); data.add(content); } } } break; case 2: content = FOUR_BLANK_SPACE + tmpElements.get(ii).text(); data.add(content); break; case 3: content = FOUR_BLANK_SPACE + tmpElements.get(ii).text(); data.add(content); break; default: content = FOUR_BLANK_SPACE + tmpElements.get(ii).text(); data.add(content); } } } } } } } } return data; } private static String handlSrc(String src) { // src = background-image: url(http://i3.xiachufang.com/image/280/f55c60929f3611e38844b8ca3aeed2d7.jpg); if (!TextUtils.isEmpty(src)) { if (src.contains("url")) { src = src.split("url")[1]; src = src.substring(1, src.length() - 1); } } return src; } }