2012-09-01 34 views
0

我正在使用XML解析器從XML文件中讀取數據。作爲第一行返回null的XML解析器

XML解析器將第一行讀取爲空,然後從所創建的xml文件中返回其他數據。

以下是XML解析代碼:

XmlResourceParser parser = getResources().getXml(R.xml.contacts); 

     int eventType = -1; 
     try { 
      while (eventType != XmlResourceParser.END_DOCUMENT) 
      { 
       if(eventType == XmlResourceParser.START_TAG) 
       { 
        if(parser.getName().toString().equals("contact") && parser.getName().toString().equals("null")) 
         col.append(parser.getAttributeValue(null, "name") + "\n"); 
         col.append(parser.getAttributeValue(null, "phone") + "\n \n"); 
       } 
       eventType = parser.next(); 
      } 
     } 
     catch (XmlPullParserException e) { 

      e.printStackTrace(); 
     } 

以下是XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<contacts> 
    <contact name="Prathama Blood Center" phone="079 26600101" /> 
    <contact name="Green Cross" phone="079 25507013"/> 
    <contact name="Crossworld Blood Bank" phone="079 26568004"/> 
    <contact name="Adarsh Voluntary Blood Bank" phone="079 22746672"/> 
    <contact name="Red Cross" phone="079 27551790"/> 
</contacts> 

以下是我得到的畫面:

enter image description here

+1

'parser.getName()的toString()等於(「接觸」)&& parser.getName()。toString()。equals(「null」)'我不認爲這會永遠返回'true'? – Aprian

回答

2

眼下您的if的範圍只擴展到第一col.append我不知道爲什麼你需要一個if語句(因爲它從來沒有真正的)這裏的範圍應該是什麼:。

if(parser.getName().toString().equals("contact") && parser.getName().toString().equals("null")) 
{ //here 
    col.append(parser.getAttributeValue(null, "name") + "\n"); 
    col.append(parser.getAttributeValue(null, "phone") + "\n \n"); 
}//and here