解析xml的方法

来源:互联网 发布:福建广电网络套餐 编辑:程序博客网 时间:2024/04/30 03:22

简单的读析xml:

 

 

例子:

<?xml version="1.0"encoding="utf-8"?>

<Table name="UserList">

            <key name= "number1">

                 

                  <logname>小白</logname>

                  <passwd>123456</passwd>

                

                  <default_Mark>disable</default_Mark>

            </key>

            <key name ="number2">

                 

                  <logname>小红</logname>

                  <passwd>123456</passwd>

                 

                  <default_Mark>disable</default_Mark>

            </key>

            <key name ="number3">

                 

                  <logname>小强</logname>

                  <passwd>234567</passwd>

                 

                  <default_Mark>disable</default_Mark>

            </key>

            

        

           

</Table>

 

 

1.1首先创建对象User,对应xml里面的key:

public class User implements Serializable{

      private static final long serialVersionUID = 1L;

      private String usename;

      private String password;

      private String default_Mark;

      private String UserMark;

      public User() {

      }

     

      public User(Stringusename, String password,String default_Mark,String UserMark) {

            this.usename = usename;

            this.password = password;

            this.UserMark = UserMark;

            this.default_Mark = default_Mark;

 

      }

      public StringgetUseName() {

            return usename;

      }

      public StringgetValue() {

            return password;

      }

     

      public Stringgetdefault_Mark() {

            return default_Mark;

      }


      public StringgetUserMark() {

            return UserMark;

      }

 

    

      public void setUseName(Stringusename) {

            this.usename = usename;

      }

      public void setvalue(Stringpassword) {

 

            this.password = password;

      }

      public void setUserMark(String UserMark)

      {

 

            this.UserMark = UserMark;

      }


      public voidsetdefault_Mark(String default_Mark) {

            this.default_Mark = default_Mark;

      }

     

}

1.2使用xmlpullxml:

public class ReadService{   

public staticList<User> getEventsFromAnXML(InputStream is)  throws Exception

{

      XmlPullParser xpp = Xml.newPullParser();

      xpp.setInput(is, "utf-8");

      int eventType = xpp.getEventType();

      List<User> keys = null;

      User key = null;

     

      boolean done = false;

      while (eventType !=XmlPullParser.END_DOCUMENT && !done)

      {

           

            switch(eventType){

            case XmlPullParser.START_DOCUMENT:

                  keys = newArrayList<User>();          

                  break;

            case XmlPullParser.START_TAG:

                  String tag = xpp.getName();                 

                  if(tag.equalsIgnoreCase("key")){

                        key = new User();

                        key.setUserMark(xpp.getAttributeValue(0));

                  }else if(key != null){

                        if(tag.equalsIgnoreCase("logname")){

                              key.setServerValue(newString(xpp.nextText()));

                        }else if(tag.equalsIgnoreCase("passwd")){

                              key.setvalue(newString(xpp.nextText()));

                        }else if(tag.equalsIgnoreCase("default_Mark")){

                              key.setdefault_Mark(newString(xpp.nextText()));

                        }          

                  }

                  break;

           

            case XmlPullParser.END_TAG:

                  if(xpp.getName().equalsIgnoreCase("key") && key!= null) {                  

                        keys.add(key);                     

                        key = null;

                  }

                 

                  else if(xpp.getName().equalsIgnoreCase("Table")){

                done = true;

            }

                  break;

           

            }    

            eventType = xpp.next();

      }

      is.close();

      return keys;

      }

}