xml解析-続き-のPull

2729 ワード

/***pull解析xmlコンテンツを採用*通常pull解析器を使用してxmlドキュメントを解析することをお勧めします.
* @author Administrator**/
 
/***従業員情報の取得*@param xmlInputStream*@return*@throws Exception*/public static ListgetPerson(InputStream xmlInputStream)throws Exception{ListpersoList=null;Person person=null;
 XmlPullParser parser= Xml.newPullParser();   

 
parser.setInput(xmlInputStream,"UTF-8");//設定、解析
setInput(xml,encoding);int event = parser.getEventType();//xmlファイルの最初の文字//pull解析器を解析するのはアクティブな自己解析ではなく、next()解析方法を手動で呼び出す必要があります.解析を行うwhile(event!=XmlPullParser.END_DOCUMENT){//ドキュメントの最後でなければ解析を続ける(ドキュメントイベントを終了しない){case XmlPullParser.START_DOCUMENT://ドキュメントイベントを開始persoList=new ArrayList();break;case XmlPullParser.START_TAG://要素イベント処理if(「person」.equals(parser.getName())を開始{//get attributeint id= new Integer(parser.getAttributeValue(0));person =new Person();person.setId(id);}if(person!=null){if("name".equals(parser.getName()){//get attributeperson.setName(parser.nextText();//開始ノードの下にあるテキストノードの値を取得}if("age".equals(parser.getName())){//get attributeint age=new Integer(parser.nextText();person.setAge(age)}}break;case XmlPullParser.END_TAG://エレメントイベントif(「person」.equals(parser.getName()){persoList.add(person);person=null;}break;}event =parser.next();//nextメソッドを呼び出し、次のステップ}return persoList;}
 
 
/***xml*@param list*@param outputStream*@throws Exception*/public static void save(Listlist,OutputStreamoutputStream)throws Exception{XmlPullParserFactory factory=XmlPullParserFactory.newInstance();XmlSerializer serializer=factory.newSeriazer();//シーケンス化オブジェクトserizer.set.setを取得する////シーケンス化オブジェクトserizer.set.setを取得する///////シーケンス化オブジェクトserizer.set.set.set.setを取得する/////////シーケンス化オブジェクトserizer.set.Output(outputStream,"utf-8");//出力方向serializerを設定.startDocument("utf-8",true);//xmlファイルの符号化とxmlファイルが独立してserializerに存在できるかどうかを設定する.startTag(null,"persons");//開始ラベル(名前空間がnull、persons)for(Personperson:list){serializer.startTag(null、「person」に設定);///kaishi設定、personノードserializer.attribute(null、「id」、person.getId()+「」;//ノード属性を設定//////サブノードserializer.startTag(null、「name」);serializer.text(person.getName();serializer.endTag(null、名前空間がnullに設定、person、person.getName();serializer.endTag(null、名前空間がnull、person、"name");//サブノードserializerを設定します.startTag(null,"age");serializer.text(person.getAge()+"");serializer.endTag(null,"age");serializer.endTag(null,"person");}serializer.endTag(null,"persons");//終了ラベルを設定してから終了しますか?endDocument();//ドキュメントの終了}