Ayuda a Almacenar un dato

Hola alguien sabe como almacenar este XML en una variable de Java:

                <XMLRESPONSE>
                        <error>false</error>
                        <no_auto>38551321</no_auto>
                        <codigo_respuesta>0</codigo_respuesta>
                        <mensaje_respuesta>RECARGA TELCEL 20.00</mensaje_respuesta>
                        <mensaje_aclaraciones></mensaje_aclaraciones>
                </XMLRESPONSE>

la verdad no tengo ni idea de como hacerlo, espero y ustedes me puedan ayudar .

Saludos

Comentarios

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.
Imagen de neko069

¿De donde obtienes ese

¿De donde obtienes ese XML?
¿Puede ser cualquier biblioteca? Igual un ejemplo en Castor puede ayudarte si es el caso.

Imagen de Valerio

Mire lo obtengo de este

Mire lo obtengo de este codigo de java

              RecargaServicePortType ws=new  RecargaService().getRecargaServicePort();
               rec=ws.recarga(xml);

y rec me trae el XML asi:

<XMLRESPONSE>
                        <error>false</error>
                        <no_auto>38551321</no_auto>
                        <codigo_respuesta>0</codigo_respuesta>
                        <mensaje_respuesta>RECARGA TELCEL 20.00</mensaje_respuesta>
                        <mensaje_aclaraciones></mensaje_aclaraciones>
                </XMLRESPONSE>

lo que deseo es guardar el Tag de 38551321 pero no se como hacerlo, saludos

Imagen de julgo

y ese objeto rec no tiene

y ese objeto rec no tiene métodos donde se pueda iterar o extraer algún nodo.
no digo que funcione solo que debe ser algo asi
System.out.println("el tag no_auto: " + rec.getChildNodes("no_auto");

Imagen de Valerio

No , no tiene por mas que he

No , no tiene por mas que he buscado y no he encontrado los parámetros de salida solo me retorna un Xml pero no tiene la forma iterar algun nodo

                 System.out.println("Variable No_Auto \n"+rec.getChildNodes("no_auto"));

al ponerle así, me marca error.

Imagen de ezamudio

string

Seguramente es un string. Si sólo quieres ese dato, ps xml.indexOf("") hasta xml.indexOf("")

Imagen de Valerio

que tal Ezamudio puse esta

que tal Ezamudio puse esta linea de código

 System.out.println("XML Numero de Autorizacion\t"+rec.indexOf("no_auto"));

cuando corro el xml me trae esto

<XMLRESPONSE>
                        <error>false</error>
                        <no_auto>38574949</no_auto>
                        <codigo_respuesta>0</codigo_respuesta>
                        <mensaje_respuesta>RECARGA TELCEL 20.00</mensaje_respuesta>
                        <mensaje_aclaraciones></mensaje_aclaraciones>
                </XMLRESPONSE>

lo que quiero es Guardar una variable el valor que contiene    <no_auto>38574949</no_auto>

pero cuando lo imprimo me sale este valor :
XML Numero de Autorizacion 63

no se a que se deba o que le falta, Saludos

Imagen de julgo

en ningún momento dije que

en ningún momento dije que esa era la solución era un ejemplo asi como :

 
//no existe
rec.getNodeValueXml("no_auto");

que es un método que invente y seguramente no existe en java cuando se trabaja con XML.
y el método indexOf(" ");retorna un int con la posición de la primera ocurrencia por eso retorna 63 que es la posición de no_auto cuenta si quieres cada carácter ( los espacios en blanco también ).
debes usar un substring con las posiciones inicial y final de no_auto guardados anteriormente en un int cada uno.

Imagen de Valerio

Gracias a todos por sus

Gracias a todos por sus aportaciones, JULGO lo que me dices eso ya lo tenia echo pero pensé que había de otra forma pero viendo a sus comentarios pues me quedare con esta soluciona que me patean, Saludos ......

Imagen de adrianaaae

Tal vez sea demacionado tarde pero ahi les va mi sugerencia!!!

Mira por lo que veo esa respuesta (xml) es de un web service no???

Bueno como sea, se puede recorrer la cadena xml.

Esta es una manera de hacerlo, o al menos yo lo hice de esta manera.

        private void respuesta() throws JDOMException, IOException {
            String cadenaxml = "<XMLRESPONSE>\n"
                    + "                        <error>false</error>\n"
                    + "                        <no_auto>38551321</no_auto>\n"
                    + "                        <codigo_respuesta>0</codigo_respuesta>\n"
                    + "                        <mensaje_respuesta>RECARGA TELCEL 20.00</mensaje_respuesta>\n"
                    + "                        <mensaje_aclaraciones></mensaje_aclaraciones>\n"
                    + "                </XMLRESPONSE>";
            SAXBuilder builder = new SAXBuilder();
            Document doc = null;
            String ruta_retraive_xml;
            Reader in = new StringReader(cadenaxml);
            doc = (org.jdom2.Document) builder.build(in);
            Element rootNode = doc.getRootElement();
            List<Element> tbl_parConection = rootNode.getChildren("no_auto");
            Element tbl = (Element) tbl_parConection.get(0);
            String usr_retraive_xml = tbl.getValue();
            System.out.println("----> " + usr_retraive_xml);            
        }
                   

De cualquier manera la info aquí se queda.

Que tengan Buenas tardes!!!