Ver Mensaje Individual
  #11 (permalink)  
Antiguo 21/09/2016, 07:14
Japrendo
 
Fecha de Ingreso: noviembre-2013
Mensajes: 147
Antigüedad: 10 años, 5 meses
Puntos: 1
Respuesta: Web Service XML

Maestro abrahamhs, gracias por el empujon que necesitaba. Aqui dejo el programa por si a alguien le sirve (es solo la parte para extraer los datos del XML)

Código Java:
Ver original
  1. //recibo el parametro en mi caso es el documento del usuario
  2.         int id1=Integer.parseInt(request.getParameter("id1"));
  3.         BigDecimal idusuario = new BigDecimal(id1);
  4.         BigDecimal idapp     = new BigDecimal(2206);
  5.         String documento2=request.getParameter("id1");
  6.         int posx=0;
  7.         int tamanio=0;
  8.        
  9.     try {
  10.         //invoco el servicio web
  11.     com.cia.seguridad.web.services.WSMenuWebService service = new com.cia.seguridad.web.services.WSMenuWebService();
  12.     com.cia.seguridad.web.services.WSMenuWeb port = service.getWSMenuWebPort();
  13.         com.cia.seguridad.web.services.WSMenuWeb port2 = null;
  14.         // aqui se inicializan los parametros que necesita el servicio web
  15.     java.math.BigDecimal documento = null;
  16.     java.math.BigDecimal aplicativo = null;
  17.     java.lang.String pais = "";
  18.         documento=idusuario;
  19.         aplicativo=idapp;
  20.     // TODO process result here
  21.     //java.lang.
  22.         //guardo el resultado en la variable "result"
  23.         String result = port.menuUsuarioAplicacion(documento, aplicativo, pais);
  24.         //con DocumentBuilder convierto el String a XML
  25.         DocumentBuilder builder = null;
  26.         builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();            
  27.         Document xmlDocument = builder.parse(new ByteArrayInputStream(result.getBytes()));
  28. // con xpath recorro el xml, realmente es facil
  29.             XPath xPath =  XPathFactory.newInstance().newXPath();
  30.             // Instancia de xPath necesaria para compilar las expresiones
  31.             XPathExpression exprParameter = xPath.compile("/Modulos/Transaccion");
  32.             /* Compilo la expresion con el termino que necesito extraer del xml, en mi caso
  33.              * las transacciones que debe permitirsele al usuario (permisos).
  34.              * Con el fin que entre al ciclo y extraiga todos los registros.
  35.              */
  36.             NodeList parametros = (NodeList)exprParameter.evaluate(xmlDocument, XPathConstants.NODESET);
  37.             // dentro de la variable parametros inserto todos los registros para extraerlos mediante el ciclo
  38.             for(int i=0; i<parametros.getLength(); i++){
  39.                 // extraigo el parametro especifico ...para este ejemplo lo presento en pantalla
  40.                 // pero desde aqui ya se puede utilizar de acuerdo a sus necesidades
  41.                 Node paramNode = parametros.item(i);
  42.                 String pTransaccion = paramNode.getAttributes().getNamedItem("transaccion").getNodeValue();
  43.  
  44.                 System.out.println("Parametro Leido : " + pTransaccion );
  45.                 //System.out.println("Leido parámetro " + parameterName + " de clase " + parameterClass);
  46.             }            
  47.            
  48.            
  49.            
  50.             String expressionCodigoPerfil = "/Modulos/@codigoPerfil";
  51.             String codigoPerfil = xPath.compile(expressionCodigoPerfil).evaluate(xmlDocument);
  52.             System.out.println(codigoPerfil);
  53.  
  54.             String expressionClasificacion = "/Modulos/Transaccion/@clasificacion";
  55.             String clasificacion = xPath.compile(expressionClasificacion).evaluate(xmlDocument);
  56.             System.out.println(clasificacion);        
  57.  
  58.             String expressionTransaccion = "/Modulos/Transaccion/@transaccion";
  59.             String transaccion = xPath.compile(expressionTransaccion).evaluate(xmlDocument);
  60.             System.out.println(transaccion);
  61.  
  62.             String expressionMenu = "/Modulos/Transaccion/transaccion";
  63.             String menu = xPath.compile(expressionMenu).evaluate(xmlDocument);
  64.             System.out.println(menu);
  65.            
  66.            
  67.     out.println("Transaccion = "+transaccion);
  68.     out.println("menu = "+menu);
  69.         //*************************************************************        
  70.     } catch (Exception ex) {
  71.     // TODO handle custom exceptions here
  72.     }