package Ġcom . github . func zz . kotlin . extensions . stdlib Ċ Ċ import Ġorg . w 3 c . dom . Element Ċ import Ġorg . w 3 c . dom . Node Ċ import Ġjava . io . ByteArray InputStream Ċ import Ġjava . io . InputStream Ċ import Ġjavax . xml . parsers . Document BuilderFactory Ċ Ċ /** Ċ Ġ* ĠXML éĸ¢ éĢ£ ãģ® ãĥ ¦ ãĥ¼ãĥ Ĩ ãĤ£ ãĥªãĥĨãĤ£ ãĤ¯ãĥ©ãĤ¹ ãĢĤ Ċ Ġ*/ Ċ object ĠXml Util Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠãĤ¨ ãĥ¬ ãĥ¡ãĥ³ãĥĪ ãĤĴåıĸå¾Ĺ ãģĻãĤĭ ãĢĤ ĊĠĠĠĠ Ġ* Ġ@ param Ġstring ĠXML ĊĠĠĠĠ Ġ* Ġ@ return ĠElement ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Document Element ( string : ĠString ): ĠElement Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Document Element ( string . toByteArray ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠãĤ¨ ãĥ¬ ãĥ¡ãĥ³ãĥĪ ãĤĴåıĸå¾Ĺ ãģĻãĤĭ ãĢĤ ĊĠĠĠĠ Ġ* Ġ@ param ĠbyteArray ĠXML ĊĠĠĠĠ Ġ* Ġ@ return ĠElement ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Document Element ( byteArray : ĠByteArray ): ĠElement Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠByteArrayInputStream ( byteArray ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Document Element ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠãĤ¨ ãĥ¬ ãĥ¡ãĥ³ãĥĪ ãĤĴåıĸå¾Ĺ ãģĻãĤĭ ãĢĤ ĊĠĠĠĠ Ġ* Ġ@ param ĠinputStream ĠXML ĊĠĠĠĠ Ġ* Ġ@ return ĠElement ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Document Element ( inputStream : ĠInputStream ): ĠElement Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDocument BuilderFactory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. new Document Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. parse ( inputStream ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. documentElement ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠãĤ¨ ãĥ¬ ãĥ¡ãĥ³ãĥĪ ãģ® PC DATA æĸĩåŃĹåĪĹ ãĤĴåıĸå¾Ĺ ãģĻãĤĭ ãĢĤ ĊĠĠĠĠ Ġ* Ġ@ param Ġnode Ġ Ġãĥ İ ãĥ¼ãĥī ĊĠĠĠĠ Ġ* Ġ@ return ĠString ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetText Value ( node : ĠNode ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnode List Ġ= Ġnode . childNodes ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġnode List . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn Ġ= Ġnode List . item ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n . nodeType Ġ== ĠNode . TEXT _ NODE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġn . node Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĲįç§° ãģ® ä¸Ģèĩ´ ãģĻãĤĭ åŃĲ ãĥİ ãĥ¼ãĥī ãģ® ãĥªãĤ¹ãĥĪ ãĤĴåıĸå¾Ĺ ãģĻãĤĭ ãĢĤ ĊĠĠĠĠ Ġ* Ġ@ param Ġnode Ġ è¦ ª ãĥİ ãĥ¼ãĥī ĊĠĠĠĠ Ġ* Ġ@ param Ġname Ġãĥ İ ãĥ¼ãĥī åĲįç§° ĊĠĠĠĠ Ġ* Ġ@ return Ġ åŃĲ ãĥİ ãĥ¼ãĥī ãģ® ãĥªãĤ¹ãĥĪ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Child Nodes ByName ( node : ĠNode , Ġname : ĠString ): ĠList < Node > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmutable ListOf < Node >() ĊĠĠĠĠĠĠĠ Ġval Ġnode List Ġ= Ġnode . childNodes ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġnode List . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn Ġ= Ġnode List . item ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n . nodeType Ġ== ĠNode . ELEMENT _ NODE Ġ&& Ġn . nodeName Ġ== Ġname ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( n ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ fun ĠNode . getText Value (): ĠString Ġ{ ĊĠĠĠ Ġreturn ĠXml Util . getText Value ( this ) Ċ } Ċ Ċ fun ĠNode . getChild Nodes ByName ( name : ĠString ): ĠList < Node > Ġ{ ĊĠĠĠ Ġreturn ĠXml Util . getChild Nodes ByName ( node Ġ= Ġthis , Ġname Ġ= Ġname ) Ċ } Ċ