Ver Mensaje Individual
  #9 (permalink)  
Antiguo 20/09/2016, 12:01
abrahamhs
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: Web Service XML

Haber si con esto te queda mas claro. Este es el xml en cuestion:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="ISO-8859-1" ?>
  2. <Modulos codigoPerfil="EXT_PROVEE" nombrePerfil="ANALISTA EXTERNO" codigoPais="CO" FechaUltimoIngreso="08/09/2016">
  3.     <Transaccion label="DATOS PROVEEDOR" idTarea="1271" breadcrumb="/DATOS PROVEEDOR" transaccion="/faces/pages/ficha/datosproveedor.xhtml?icono=/images/datproveedor.png&amp;amp;codigoLocalidad=8220" actualiza="N" adiciona="N" consulta="N" ejecuta="N" elimina="N" imprime="N" clasificacion="PENDIENTE" criticidad="PENDIENTE" />
  4. </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 original
  1. String 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;amp;codigoLocalidad=8220\" actualiza=\"N\" adiciona=\"N\" consulta=\"N\" ejecuta=\"N\" elimina=\"N\" imprime=\"N\" clasificacion=\"PENDIENTE\" criticidad=\"PENDIENTE\" /></Modulos>";
  2.             Document xmlDocument = builder.parse(new ByteArrayInputStream(result.getBytes()));
  3.             XPath xPath =  XPathFactory.newInstance().newXPath();
  4.            
  5.             String expressionCodigoPerfil = "/Modulos/@codigoPerfil";
  6.             String codigoPerfil = xPath.compile(expressionCodigoPerfil).evaluate(xmlDocument);
  7.             System.out.println(codigoPerfil);
  8.            
  9.             String expressionClasificacion = "/Modulos/Transaccion/@clasificacion";
  10.             String clasificacion = xPath.compile(expressionClasificacion).evaluate(xmlDocument);
  11.             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