leer XML desde String

Hola buen día, estoy intentando obtener el valor de un tag xml, el contenido del xml lo tengo en un String, y lo que intento es obtener un valor contenido en el tag xml. Ya busque info y en su mayoria obtienen el contenido desde el archivo .xml, hasta ahora tengo que el string se le da formato xml.

public String format(String xml) {

                try {
                        final InputSource src = new InputSource(new StringReader(xml));
                        final Node document = DocumentBuilderFactory.newInstance()
                                        .newDocumentBuilder().parse(src).getDocumentElement();
                        final Boolean keepDeclaration = Boolean.valueOf(xml
                                        .startsWith("<?xml"));
                       
                        final DOMImplementationRegistry registry = DOMImplementationRegistry
                                        .newInstance();
                        final DOMImplementationLS impl = (DOMImplementationLS) registry
                                        .getDOMImplementation("LS");
                        final LSSerializer writer = impl.createLSSerializer();

                        writer.getDomConfig().setParameter("format-pretty-print",
                                        Boolean.TRUE);
                        writer.getDomConfig().setParameter("xml-declaration",
                                        keepDeclaration);
                                                                               
                        return writer.writeToString(document);
                } catch (Exception e) {
                        throw new RuntimeException(e);
                }
        }

        public static void main(String[] args) {
                String unformattedXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
                                + "<ERRORES><TYPE_NAME>"
                                + "Quero obtener este texto"
                                + "</TYPE_NAME>" + "<ERROR_DESC/>" + "<ERROR_DATE>"
                                + "texto" + "</ERROR_DATE>" + "</ERRORES>";

                System.out.println(new XmlFormatter().format(unformattedXml));
        }

Quiero obtener lo que esta dentro del tag TYPE_NAME.

EDITO :
Ya quedó :

*******************************************************************************

String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
                                + "<ERRORES><TYPE_NAME>"
                                + "texto a mostrar"
                                + "</TYPE_NAME>" + "<ERROR_DESC/>" + "<ERROR_DATE>"
                                + "otro texto" + "</ERROR_DATE>" + "</ERRORES>";

                try {
                        DocumentBuilderFactory domFactory = DocumentBuilderFactory
                                        .newInstance();
                        domFactory.setNamespaceAware(true);
                        DocumentBuilder builder = domFactory.newDocumentBuilder();
                        Document doc = builder
                                        .parse(new InputSource(new StringReader(xml)));

                        NodeList todosContactos = doc.getElementsByTagName("ERRORES");
                        Node unContacto = todosContactos.item(0);

                        if (unContacto.getNodeType() == Node.ELEMENT_NODE) {
                                Element elemento = (Element) unContacto;
                               
                               
                                NodeList lista = elemento.getElementsByTagName("TYPE_NAME")
                                                .item(0).getChildNodes();
                                Node valor = (Node) lista.item(0);
                                System.out.println(valor.getNodeValue());
                        }
                } catch (Exception ex) {
                        ex.printStackTrace();
                }

Saludos

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

JDOM2

Quiza esto te pueda servir de ayuda, acutalmente tambien leeo un XML que esta en un String y para eso utilizo jdom2, es algo sencillo y deje estos metodos de utileria, sinceramente creo que no compilara la clase pero esos son los metodos que yo utilizo.

https://gist.github.com/ripper2hl/0b4f1e3ccfc339a40604

checa este codigo, ojala y te sirva

import java.io.IOException;
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

public class stringAXml {

private Document xmlDocument;

public stringAXml(String xmlString) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
this.xmlDocument = builder.parse(new InputSource(new StringReader(xmlString)));
} catch (ParserConfigurationException | SAXException | IOException e) {
System.out.println(e.getMessage());
}
}

public Document getXML() {
return xmlDocument;
}
}