Проблема в отображении только одного узла XML - PullRequest
0 голосов
/ 24 мая 2011

Ниже приведен код, который отображает все xml.Я не хочу отображать все содержимое XML, но хочу только проверить, если ID = 2, чем отображать описание.Пожалуйста, помогите мне изменить код.

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> 

1 Ответ

0 голосов
/ 24 мая 2011

Вот код .....

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;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...