2011-01-10 7 views
3

Я пытаюсь загрузить файл html с помощью ul страницы. Я использую Jsoup. Это мой код:android html download и parse error

TextView ptext = (TextView) findViewById(R.id.pagetext); 
    Document doc = null; 
    try { 
     doc = (Document) Jsoup.connect(mNewLinkUrl).get(); 
    } catch (IOException e) { 
     Log.d(TAG, e.toString()); 
     e.printStackTrace(); 
    } 
    NodeList nl = doc.getElementsByTagName("meta"); 
    Element meta = (Element) nl.item(0); 
    String title = meta.attr("title"); 
    ptext.append("\n" + mNewLinkUrl); 

При запуске его, я получаю сообщение об ошибке о том, Attr не определен для элемента типа. Что я сделал не так? Простите меня, если это кажется тривиальным.

ответ

2

Убедитесь, что Element относится к org.jsoup.nodes.Element, а не к чему-то еще. Проверьте импорт. Также убедитесь, что Document относится к org.jsoup.nodes.Document. Он не имеет метода getElementsByTagName(). Jsoup не использует ни один из API org.w3c.dom.

Вот полный пример с правильным импортом:

package com.stackoverflow.q4720189; 

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 

public class Test { 

    public static void main(String[] args) throws Exception { 
     Document document = Jsoup.connect("http://example.com").get(); 
     Element firstMeta = document.select("meta").first(); 
     String title = firstMeta.attr("title"); 
     // ... 
    } 

} 
+0

Спасибо. Я получил ответ. Я использовал неправильный Элемент. – Brahadeesh

+1

Поскольку принятый в настоящее время ответ был неправильным, я был так добр, чтобы добавить правильный ответ, чтобы избежать того, что другие, столкнувшиеся с этим вопросом по их запросу, будут помещены на неправильный трек. – BalusC

0

Как я понимаю, Элемент здесь org.w3c.dom.Element. Затем используйте meta.getAttribute() вместо attr. Класс Element просто не имеет такого метода.

+0

жаль, что я использовал android.sax.Element. Спасибо за ваш ответ. – Brahadeesh