作为第一行返回null的XML解析器

问题描述:

我正在使用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

眼下您的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