package Ġcom . blogspot . my k enta . tri est est ory Ċ Ċ import Ġandroid . util . Xml Ċ import Ġorg . xml pull . v 1 . Xml Pull Parser Ċ import Ġorg . xml pull . v 1 . Xml Pull Parser Exception Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Ċ Ċ class ĠPre vision e Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġvar Ġsitu azione _ gener ale : ĠString ?, ĊĠĠĠĠĠĠĠ Ġvar Ġt enden za : ĠString ? Ċ ) Ċ class ĠO sm er Parser Ġ{ ĊĠĠĠ Ġ// ĠWe Ġdon 't Ġuse Ġnamespaces ĊĠĠĠ Ġprivate Ġval Ġns : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Throws ( Xml Pull Parser Exception :: class , ĠIOException :: class ) ĊĠĠĠ Ġfun Ġparse (` in `: ĠInputStream ): ĠPre vision e Ġ{ ĊĠĠĠĠĠĠĠ Ġ` in `. use Ġ{ Ġ` in ` Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠXml . new Pull Parser () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġparser . set Feature ( Xml Pull Parser . FEATURE _ PROCESS _ NAMES P ACES , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparser . setInput (` in `, Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparser . next Tag () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġread Data ( parser ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Throws ( IOException :: class , ĠXml Pull Parser Exception :: class ) ĊĠĠĠ Ġprivate Ġfun Ġread Text ( parser : ĠXml Pull Parser ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( parser . next () Ġ== ĠXml Pull Parser . TEXT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġparser . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparser . next Tag () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Xml Pull Parser Exception :: class , ĠIOException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġread Data ( parser : ĠXml Pull Parser ): ĠPre vision e Ġ{ ĊĠĠĠĠĠĠĠ Ġparser . require ( Xml Pull Parser . START _ TAG , Ġns , Ġ" data ") ĊĠĠĠĠĠĠĠ Ġwhile Ġ( parser . next () Ġ!= ĠXml Pull Parser . END _ TAG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parser . eventType Ġ!= ĠXml Pull Parser . START _ TAG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġparser . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name Ġ== Ġ" pre vision i ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġread Pre vision i ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskip ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPre vision e ( null , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Xml Pull Parser Exception :: class , ĠIOException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġread Pre vision i ( parser : ĠXml Pull Parser ): ĠPre vision e Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠPre vision e ( null , Ġnull ) ĊĠĠĠĠĠĠĠ Ġwhile Ġ( parser . next () Ġ!= ĠXml Pull Parser . END _ TAG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parser . eventType Ġ!= ĠXml Pull Parser . START _ TAG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġparser . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name Ġ== Ġ" S IT UA Z ION E GENER ALE _ TEST O ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . sit u azione _ gener ale Ġ= Ġread Text ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( name Ġ== Ġ" T END EN ZA _ TEST O ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . t enden za Ġ= Ġread Text ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskip ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Xml Pull Parser Exception :: class , ĠIOException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġskip ( parser : ĠXml Pull Parser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( parser . eventType Ġ!= ĠXml Pull Parser . START _ TAG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġdepth Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( depth Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( parser . next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠXml Pull Parser . END _ TAG Ġ-> Ġdepth -- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠXml Pull Parser . START _ TAG Ġ-> Ġdepth ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }