Ver Mensaje Individual
  #6 (permalink)  
Antiguo 08/06/2015, 01:25
tiznao89
 
Fecha de Ingreso: mayo-2015
Mensajes: 6
Antigüedad: 9 años
Puntos: 0
Respuesta: leer un determinado nodo de un xml

Esta es la manera para crear el xml:

Código Java:
Ver original
  1. public static void crearXML(NSGDBean pet){
  2.                
  3.         try {
  4.             //Serializamos
  5.             ByteArrayOutputStream bos = new ByteArrayOutputStream();
  6.             ObjectOutputStream os = new ObjectOutputStream(bos);
  7.            
  8.             os.writeObject(pet);
  9.            
  10.            
  11.             //crear el XML
  12.             DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
  13.             DocumentBuilder docbuilder = docFactory.newDocumentBuilder();
  14.            
  15.             //elementos root
  16.             Document doc = docbuilder.newDocument();
  17.             Element rootElement = doc.createElement("ACCIONES_NSGD");
  18.             doc.appendChild(rootElement);
  19.            
  20.             //Parametros
  21.             Element func = doc.createElement("FUNCION");
  22.             func.appendChild(doc.createTextNode(pet.getMetodoNSGD()));
  23.             rootElement.appendChild(func);
  24.            
  25.             System.out.println(bos.toString());
  26.            
  27.             Element param = doc.createElement("PARAMETROS");
  28.             param.appendChild(doc.createTextNode(bos.toString("UTF-8")));
  29.             //param.appendChild(doc.createTextNode("todos los parametros"));
  30.             rootElement.appendChild(param);
  31.            
  32.             //escribimos el contenido en el fichero
  33.             TransformerFactory transformerfactory = TransformerFactory.newInstance();
  34.             Transformer transformer = transformerfactory.newTransformer();
  35.             DOMSource source = new DOMSource(doc);
  36.             StreamResult result = new StreamResult(new File("C:\\Downloads\\cierreExpediente.xml"));
  37.            
  38.            
  39.             transformer.transform(source, result);
  40.            
  41.             System.out.println("Fichero guardado!");
  42.            
  43.             //ProxyNSGD.procesaPeticionNSGD(bos.toString());
  44.            
  45.         } catch (ParserConfigurationException e) {
  46.             // TODO Bloque catch generado automáticamente
  47.             e.printStackTrace();
  48.         } catch (TransformerConfigurationException e) {
  49.             // TODO Bloque catch generado automáticamente
  50.             e.printStackTrace();
  51.         } catch (TransformerException e) {
  52.             // TODO Bloque catch generado automáticamente
  53.             e.printStackTrace();
  54.         } catch (IOException e) {
  55.             // TODO Bloque catch generado automáticamente
  56.             e.printStackTrace();
  57.         }
  58.     }

Est el el xml que creo
Código XML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. - <ACCIONES_NSGD>
  3.   <FUNCION>cierreExpediente</FUNCION>
  4.   <PARAMETROS>sr%es.NSGD.Bean.NSGDBeanBLL claseNSGDtLjava/lang/String;L metodoNSGDq~L parametrostLjava/util/List;xptExpedienteNSGDtcierreExpedientesrjava.util.ArrayListx��aIsizexpwtidUsuario_pruebatobjectStore_pruebatidExpediente_pruebax</PARAMETROS>
  5.   </ACCIONES_NSGD>

Este es el error al leer:
Fatal Error] cierreExpediente.xml:1:106: La referencia de carácter "" no es un carácter XML no válido.
org.xml.sax.SAXParseException: La referencia de carácter "" no es un carácter XML no válido.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(U nknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at es.NSGD.Pruebas.Prueba.unserial(Prueba.java:42)
at es.NSGD.Pruebas.Prueba.main(Prueba.java:32)