2011-07-07 17 views
7

me gustaría añadir una nueva etiqueta con algunos atributos con esos valores en el archivo xml y guardar ese archivo xml a través de mi aplicación. He escrito un método para agregar una nueva etiqueta como archivo hijo a xml que está disponible en una tarjeta SD de emulator.the androide siguiente método para añadir una nueva etiqueta de la siguiente maneracómo agregar etiquetas en xml en android? y cómo guardar ese archivo xml?

public void appendTag(){ 

    try{ 

     DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); 
     Document doc = docBuilder.parse (new File("/sdcard/sample.xml")); 

    Node node = doc.getElementsByTagName("earth").item(0); 

    //append a new node to earth 
    Element newelmnt = doc.createElement("new"); 
    newelmnt.appendChild(doc.createTextNode("this is a text")); 
    node.appendChild(newelmnt); 


    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 

después de la ejecución de este método que no puedo capaz de encontrar una nueva etiqueta en el archivo xml.

¿podría agradar a cualquier ayuda sobre cómo agregar nueva etiqueta como hijo en el archivo xml y cómo guardar la modificación?

si i utiliza TransformerFactory que estoy recibiendo el error como ERROR/Android Runtime (13479): java.lang.VerifyError: com.sample.xmlapp.DOMClass he utilizado de la siguiente manera

 TransformerFactory factory = TransformerFactory.newInstance(); 
    Transformer transformer = factory.newTransformer(); 

    DOMSource source = new DOMSource(doc); 
    StreamResult result = new StreamResult(new File("/sdcard/sample.xml")); 
    transformer.transform(source, result); 

Respuesta

2

Su en el documento de memoria se cambiará, pero deberá volver a escribirlo en un archivo.

Trate de añadir esto para escribir el documento para el archivo de nuevo:?

TransformerFactory factory = TransformerFactory.newInstance(); 
Transformer transformer = factory.newTransformer(); 

DOMSource source = new DOMSource(doc); 
StreamResult result = new StreamResult(new File("/sdcard/sample.xml")); 
transformer.transform(source, result); 
+0

Si usara por encima de la clase TransformerFactory que estoy recibiendo el siguiente error ¿Cómo puedo resolver el error 07-07 12: 36: 22.361: ERROR/AndroidRuntime (12276): java.lang.VerifyError: com.fitzgerald.xmlapp.DOMClass –

+0

¿Qué nivel de API tienes? Parece que los más viejos no tienen la fábrica transformadora. Ver [esta publicación] (http://stackoverflow.com/questions/2290945/writing-xml-on-android) si ese es el caso. – wjans

Cuestiones relacionadas