Analiza cadenas XML y crea una lista de cadenas

Tengo una cadena cuyo contenido es un XML. Quiero separar las etiquetas y convertirlas en una lista de cadenas en Java. A continuación hay algo que estoy intentando:

string xml="<hello><hi a='a' b='b'/><hi a='b' b='a'/></hello>";

Quiero separarlo en una lista como:

list[0]="<hi a='a' b='b'/>"
list[1]="<hi a='b' b='a'/>"

Traté de hacer esto a través del procesador JAXB pero no funciona bien. También probé una lógica estúpida usando split pero eso tampoco ayudó. ¿Hay alguna otra forma de lograr esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta