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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Coockie, хранение PHPSESSID во время работы приложения http://www.cyberforum.ru/android-dev/thread1049720.html
Есть такой случай, есть скрипт на сервере, который добавляет коммент к посту, для того чтобы добавить этот коммент нужно ввести капчу. Когда я в android-клиент загружаю сам пост и форму добавления коммента, картинку с капчей я загружаю в webView обчным способом loadUrl(). Таким образом я отправляю запрос на сервер чтобы получить оттуда какие либо данные: public String exe(final String...
Android Facebook Поделиться к стене я пытаюсь войти в Facebook и пост к стене с одним нажатием кнопки .. я написал код и приложение может войти и разместить к стене, но у меня есть одна проблема http://postimg.org/image/71bugy22x/ это permishens видел два раза. 1) когда я войдите на Facebook 2) когда я войдите в Facebook и нажмите кнопку ОК этот permishen замечаться снова (два раза) это мой код, если кто может решение моя... http://www.cyberforum.ru/android-dev/thread1049211.html
Android Регулярка для сроки полученной от сервера
Здравствуйте, помогите составить регулярку которая оставит в строке только символы: (, . ; ] } : , пробелы допускаются только внутри строки но не в начале и конце. Суть в том что от сервера приходят ответы, и в начале строки есть несколько символов с хламом от utf-8: п», или какие-то квадраты. Сделал так, но это не оно: str.replaceAll("\\s","").trim() str.replaceAll(")|(\\","").trim(); ...
Android Парсинг XML
try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new InputSource(new ByteArrayInputStream(ans.getBytes("utf-8")))); NodeList nodes = doc.getElementsByTagName("usersReiting"); for (int i = 0; i<51; i++) { Element element =...
Android API для праздничных дней календаря http://www.cyberforum.ru/android-dev/thread1048345.html
Подскажите какое-нибудь API, чтобы можно было сформировать запрос вида месяц/год/локаль и выдало бы список всех праздничных дней. Нашел что-то типа такого http://kayaposoft.com/enrico/json/v1.0/?action=getPublicHolidaysForMonth&month=1&year=2013&country=rus Но там косяк какой-то, сервис периодически зависает, а еще месяцы начинаются с числа 1, а числа 12 - просто нет)) Ошибок не выдает, но...
Android Основной класс, для наследования от него данных для всех остальных классов Здравствуйте, как удобным способом сделать класс в котором будут проинициализированы некоторые поля (например, имя сервера к которому постоянно идет обращение и др.) и некоторые методы (например Alert Dialog, проверка соединения), и так чтобы потом можно было их использовать из любого класса в проекте.. типа они глобальные для всего проекта. Как это реализовать? Например есть класс class... подробнее

Показать сообщение отдельно
Kroshandowski
 Аватар для Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
21.12.2013, 21:29  [ТС]     Возможен ли двойной парсинг в Activity или это неправильно?
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. Оба парсера я использовал отдельно от друг друга,но в этот раз их нужно объединить. Никогда не сталкивался с одновременным использованием сразу двух.

Заранее спасибо.
 
Текущее время: 23:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru