2011-05-24 80 views
0

下面是顯示所有xml的代碼。我不想顯示所有的XML內容,但只想檢查id = 2是否顯示描述。請幫我修改代碼。只顯示一個xml節點的問題

private String getEventsFromAnXML(Activity activity)throws XmlPullParserException, IOException 

    { 
     StringBuffer stringBuffer = new StringBuffer(); 
      Resources res = activity.getResources(); 
      XmlResourceParser xrp = res.getXml(R.xml.books.xml); 
      xrp.next(); 

     int eventType = xrp.getEventType(); 
      while (eventType != XmlPullParser.END_DOCUMENT) 
      { 
       if(eventType == XmlPullParser.START_DOCUMENT) 
       { 
       stringBuffer.append(" "); 
       } 
      if(eventType == XmlPullParser.START_TAG) 
      { 
      stringBuffer.append("First Tag " + xrp.getName()); 
      } 
     else if(eventType == XmlPullParser.TEXT) 
      { 
      stringBuffer.append("Second Tag "+xrp.getText()); 
      } 
      else if(eventType == XmlPullParser.END_TAG) 
      { 
      stringBuffer.append("Third Tag "+xrp.getName()); 
      } 

      eventType = xrp.next(); 
      } 
      stringBuffer.append("\n--- End XML ---"); 
     return stringBuffer.toString(); 

    } 

我的XML文件

<?xml version="1.0" encoding="utf-8" ?> 
<Books> 
    <Number id ="1"> 
    <Description>This is science book. 
    </Description> 
    </Number> 
    <Number id = "2"> 
    <Description>This is about cooking. 
    </Description> 
    </Number> 
</Books> 

回答

0

希爾是代碼.....

private String getEventsFromAnXML()throws IOException,XmlPullParserException 

{ 
     String attVal = null; 
     String desc = null; 
     String startTag = null; 
     Resources res = this.getResources(); 
     XmlResourceParser xrp = res.getXml(R.xml.book); 
     xrp.next(); 

    int eventType = xrp.getEventType(); 
     while (eventType != XmlPullParser.END_DOCUMENT) 
     { 

     if(eventType == XmlPullParser.START_TAG){ 

      startTag = xrp.getName(); 
      if(startTag.equals("Number")){ 
      attVal = xrp.getAttributeValue(0); 
      } 
     } 
    else if(eventType == XmlPullParser.TEXT){ 

      if(startTag.equals("Description") && attVal.equals("2")) 
      desc = xrp.getText(); 
     } 
     else if(eventType == XmlPullParser.END_TAG) 
     { 
     } 
     eventType = xrp.next(); 
     } 
    return desc; 

} 
+0

我嘗試了上面的代碼,但它不顯示任何內容。 – artist 2011-05-24 05:13:43

+0

我編輯了代碼。 – Sujit 2011-05-24 06:42:27