Haber si con esto te queda mas claro. Este es el xml en cuestion:
Código XML:
Ver original<?xml version="1.0" encoding="ISO-8859-1" ?>
<Modulos codigoPerfil="EXT_PROVEE" nombrePerfil="ANALISTA EXTERNO" codigoPais="CO" FechaUltimoIngreso="08/09/2016">
<Transaccion label="DATOS PROVEEDOR" idTarea="1271" breadcrumb="/DATOS PROVEEDOR" transaccion="/faces/pages/ficha/datosproveedor.xhtml?icono=/images/datproveedor.png&amp;codigoLocalidad=8220" actualiza="N" adiciona="N" consulta="N" ejecuta="N" elimina="N" imprime="N" clasificacion="PENDIENTE" criticidad="PENDIENTE" />
</Modulos>
Nota que no tiene estos tags <S:Envelope> o <S:Body> ya que esos son de SOAP y ese xml no se debe tocar.
Este código es para parsear tu xml una vez que sea invocado el método del web service correctamente y se ha guardado el resultado en result, por ejemplo:
Código Java:
Ver originalString result
="<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?><Modulos codigoPerfil=\"EXT_PROVEE\" nombrePerfil=\"ANALISTA EXTERNO\" codigoPais=\"CO\" FechaUltimoIngreso=\"08/09/2016\"><Transaccion label=\"DATOS PROVEEDOR\" idTarea=\"1271\" breadcrumb=\"/DATOS PROVEEDOR\" transaccion=\"/faces/pages/ficha/datosproveedor.xhtml?icono=/images/datproveedor.png&amp;codigoLocalidad=8220\" actualiza=\"N\" adiciona=\"N\" consulta=\"N\" ejecuta=\"N\" elimina=\"N\" imprime=\"N\" clasificacion=\"PENDIENTE\" criticidad=\"PENDIENTE\" /></Modulos>"; XPath xPath = XPathFactory.newInstance().newXPath();
String expressionCodigoPerfil
= "/Modulos/@codigoPerfil"; String codigoPerfil
= xPath.
compile(expressionCodigoPerfil
).
evaluate(xmlDocument
); System.
out.
println(codigoPerfil
);
String expressionClasificacion
= "/Modulos/Transaccion/@clasificacion"; String clasificacion
= xPath.
compile(expressionClasificacion
).
evaluate(xmlDocument
); System.
out.
println(clasificacion
);
Ahora lo que me has dicho, de que estas en un JSP y tu ultimo código me a aclarado una cosa. Debido a estas lineas
out.println(... me parecia que invocabas un SOAP como HTTP. Pero con eso me ha quedado claro que tu invocación ya esta bien. Solo te queda desarmar el xml con el código que acabo de poner. En XPATH los atributos se acceden con "@" como aqui
/Modulos/@codigoPerfil
Busca teoria del lenguaje XPATH, para acceder al resto de nodos solo tienes que editar lineas como esta:
/Modulos/Transaccion/@clasificacion