Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Возможен ли двойной парсинг в Activity или это неправильно? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Coockie, хранение PHPSESSID во время работы приложения http://www.cyberforum.ru/android-dev/thread1049720.html
Есть такой случай, есть скрипт на сервере, который добавляет коммент к посту, для того чтобы добавить этот коммент нужно ввести капчу. Когда я в android-клиент загружаю сам пост и форму добавления...
Программирование Android Facebook Поделиться к стене я пытаюсь войти в Facebook и пост к стене с одним нажатием кнопки .. я написал код и приложение может войти и разместить к стене, но у меня есть одна проблема http://postimg.org/image/71bugy22x/ ... http://www.cyberforum.ru/android-dev/thread1049211.html
Программирование Android Регулярка для сроки полученной от сервера
Здравствуйте, помогите составить регулярку которая оставит в строке только символы: (, . ; ] } : , пробелы допускаются только внутри строки но не в начале и конце. Суть в том что от сервера...
Программирование Android Парсинг XML
try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new...
Программирование Android API для праздничных дней календаря http://www.cyberforum.ru/android-dev/thread1048345.html
Подскажите какое-нибудь API, чтобы можно было сформировать запрос вида месяц/год/локаль и выдало бы список всех праздничных дней. Нашел что-то типа такого...
Программирование Android Основной класс, для наследования от него данных для всех остальных классов Здравствуйте, как удобным способом сделать класс в котором будут проинициализированы некоторые поля (например, имя сервера к которому постоянно идет обращение и др.) и некоторые методы (например... подробнее

Показать сообщение отдельно
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
21.12.2013, 21:29  [ТС]
angryrobot, вот код парсинга XML

Кликните здесь для просмотра всего текста

public class MainActivity extends Activity {
TextView textview;
NodeList nodelist;
ProgressDialog pDialog;
String url;
String DetailText;
String URL = "Тут адрес xml";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textview = (TextView) findViewById(R.id.text);
new DownloadXML().execute(URL);
}

private class DownloadXML extends AsyncTask<String, Void, Void> {

@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setTitle("Loading...");
pDialog.setMessage("Wait...");
pDialog.setIndeterminate(false);
pDialog.show();
}

@Override
protected Void doInBackground(String... Url) {
try {
URL url = new URL(Url[0]);
DocumentBuilderFactory dbf = DocumentBuilderFactory
.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
nodelist = doc.getElementsByTagName("point");

} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;

}

@Override
protected void onPostExecute(Void args) {

for (int temp = 0; temp < nodelist.getLength(); temp++) {
Node nNode = nodelist.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
textview.setText(textview.getText() + getNode("point", eElement) + "\n" + "\n");
textview.setText(textview.getText() + getNode("name", eElement) + "\n" + "\n");
textview.setText(textview.getText() + getNode("id", eElement) + "\n" + "\n");

Здесь нужно спарсить и вставить картинку с HTML страницы

}
}
pDialog.dismiss();
}
}


private static String getNode(String sTag, Element eElement) {
NodeList nlList = eElement.getElementsByTagName(sTag).item(0)
.getChildNodes();
Node nValue = (Node) nlList.item(0);
return nValue.getNodeValue();
}


Нужно объединить с этим html парсером

Кликните здесь для просмотра всего текста

package pete.android.study;
import java.net.URL;
import org.htmlcleaner.CleanerProperties;
import org.htmlcleaner.HtmlCleaner;
import org.htmlcleaner.TagNode;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HtmlCleanerStudyActivity extends Activity {

// HTML page
static final String BLOG_URL = "http://xjaphx.wordpress.com/";
// XPath query
static final String XPATH_STATS = "//div[@id='blog-stats']/ul/li";

@Override
public void onCreate(Bundle savedInstanceState) {
// init view layout
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// decide output
String value = "";
try {
value = getBlogStats();
((TextView)findViewById(R.id.tv)).setText(value);
} catch(Exception ex) {
((TextView)findViewById(R.id.tv)).setText("Error");
}
}

/*
* get blog statistics
*/
public String getBlogStats() throws Exception {
String stats = "";

// config cleaner properties
HtmlCleaner htmlCleaner = new HtmlCleaner();
CleanerProperties props = htmlCleaner.getProperties();
props.setAllowHtmlInsideAttributes(false);
props.setAllowMultiWordAttributes(true);
props.setRecognizeUnicodeChars(true);
props.setOmitComments(true);

// create URL object
URL url = new URL(BLOG_URL);
// get HTML page root node
TagNode root = htmlCleaner.clean(url);

// query XPath
Object[] statsNode = root.evaluateXPath(XPATH_STATS);
// process data if found any node
if(statsNode.length > 0) {
// I already know there's only one node, so pick index at 0.
TagNode resultNode = (TagNode)statsNode[0];
// get text data from HTML node
stats = resultNode.getText().toString();
}

// return value
return stats;
}
}


Просто нужно результат html парсера вывести там,где я написал "Здесь нужно спарсить и вставить картинку с HTML страницы".
Т.к. в xml файле нет картинок,понадобилось парсить через html. Оба парсера я использовал отдельно от друг друга,но в этот раз их нужно объединить. Никогда не сталкивался с одновременным использованием сразу двух.

Заранее спасибо.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru