package Ġio . test axis . backend . parsers Ċ Ċ import Ġorg . w 3 c . dom . Document Ċ import Ġorg . w 3 c . dom . Element Ċ import Ġjava . io . InputStream Ċ import Ġjavax . xml . parsers . Document BuilderFactory Ċ Ċ /** Ċ Ġ* ĠFinds Ġall Ġchildren Ġthat Ġare Ġ[ Element ] s . Ċ Ġ*/ Ċ internal Ġfun ĠElement . getChild Elements By TagName ( tagName : ĠString ) Ġ= Ġget Elements By TagName ( tagName ). run Ġ{ ĊĠĠĠ Ġ( 0 .. length ). map Ġ{ Ġitem ( it ) Ġ}. filter Is Instance < Element >() Ċ } Ċ Ċ /** Ċ Ġ* ĠFinds Ġthe Ġfirst Ġchild Ġthat Ġis Ġa Ġ[ Element ] Ġand Ġreturns Ġnull Ġotherwise . Ċ Ġ*/ Ċ internal Ġfun ĠElement . getChild Element By TagName ( tagName : ĠString ) Ġ= Ġget Child Elements By TagName ( tagName ). first OrNull () Ċ Ċ abstract Ġclass ĠXML Parser < R > Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠParses Ġone Ġor Ġmore ĠXML Ġdocuments Ġto Ġa Ġcollection Ġof Ġ[ R ] s . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoperator Ġfun Ġinvoke ( documents : ĠList < InputStream >): ĠList < R > Ġ= Ġdocuments ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġcreate Document Builder (). parse ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. on Each Ġ{ Ġit . documentElement . normalize () Ġ} ĊĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġparse Documents ( it ) Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Document Builder () Ġ= ĠDocument BuilderFactory . newInstance () ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisValid ating Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Namespace Aware Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Feature (" http :// xml . org / sax / features / namespaces ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Feature (" http :// xml . org / sax / features / validation ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Feature (" http :// apache . org / xml / features / non valid ating / load - dtd - grammar ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Feature (" http :// apache . org / xml / features / non valid ating / load - external - dtd ", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ. new Document Builder () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠParses Ġall Ġprovided ĠXML Ġdocuments . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġparse Documents ( documents : ĠList < Document >): ĠList < R > Ċ } Ċ