2010-12-30 5 views
0

я, используя follwing код для retrive XML текст элемента с помощью getElementsByTagNameанализатор 2,1 и 2,2

этот код успеха в 2.2 и 2.1 Failed в

любая идея?

URL metafeedUrl = new URL("http://x..../Y.xml") 
URLConnection connection ;  
connection= metafeedUrl.openConnection(); 

HttpURLConnection httpConnection = (HttpURLConnection)connection ;   
int resposnseCode= httpConnection.getResponseCode() ; 

if (resposnseCode == HttpURLConnection.HTTP_OK) { 

InputStream in = httpConnection.getInputStream(); 

DocumentBuilderFactory dbf ; 
dbf = DocumentBuilderFactory.newInstance(); 

DocumentBuilder db = dbf.newDocumentBuilder(); 


// Parse the Earthquakes entry 
Document dom = db.parse(in); 
Element docEle = dom.getDocumentElement(); 

//ArrayList<Album> Albums = new ArrayList<Album>(); 


/* Returns a NodeList of all descendant Elements with a given tag name, in document order.*/ 

NodeList nl = docEle.getElementsByTagName("entry"); 

if (nl!=null && nl.getLength() > 0) {   
    for (int i = 0; i < nl.getLength(); i++) { 

Element entry = (Element)nl.item(i); 

/* Now on every property in Entry **/ 

Element title =(Element)entry.getElementsByTagName("title").item(0);   

*Here i Get an Error* 
String album_Title = title.getTextContent(); 

Element id =(Element)entry.getElementsByTagName("id").item(0);   
String album_id = id.getTextContent(); // 
+0

отформатируйте его правильно, чтобы получить хорошие ответы. ; -P – keyboardsurfer

+0

помог ему форматировать;) – RoflcoptrException

+2

Что не удалось. – Falmarri

ответ

4

getTextContent() не поддерживается в API 7 (Android 2.1). Он был введен в API 8 (2.2).

Предполагая, предсказуемый результат от сервера, вы можете использовать следующий код:

Node n = aNodeList.item(i); 

String strValue = n.getFirstChild().getNodeValue(); 

// as opposed to the String strValue = n.getTextContent(); 

Если элемент может быть пустым, то вы хотите, чтобы проверить подсчет ребенка первым.

+0

Предполагается, что дочерний элемент будет единственным текстовым узлом. Я просто столкнулся с ситуацией, когда в текстовом контенте появился элемент Unicode (акцентированный символ é), отображаемый как «é». Синтаксический анализатор разбил строку на несколько текстовых узлов, поэтому мне пришлось циклически конкатенировать их, чтобы получить эквивалентную функциональность 'getTextContent()' от API версии 8. (Конечно, из-за ошибки [# 2607] (http://code.google.com/p/android/issues/detail?id=2607), юникодные объекты просто не отображаются.) –

+0

Спасибо paiego, это действительно работает для меня. – Himanshu

Смежные вопросы