2011-07-07 9 views
7

Chciałbym dodać nowy znacznik z niektórymi atrybutami z tymi wartościami do pliku xml i zapisać ten plik xml za pośrednictwem mojej aplikacji.i napisałem metodę dołączania nowego znacznika jako potomka do pliku xml, który jest dostępny w sdcard z android emulator.the następujący sposób dołączyć nowy tag następującojak dodawać znaczniki w języku xml w systemie Android? i jak zapisać ten plik 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(); 
    } 

} 

po wykonaniu tej metody nie mogę w stanie znaleźć nowy tag w pliku xml.

mogłaby zaspokoić każdą pomoc dotyczącą dodania nowego znacznika jako elementu potomnego do pliku xml i sposobu zapisania modyfikacji?

jeśli używa TransformerFactory otrzymuję błąd jak ERROR/Android Runtime (13479): java.lang.VerifyError: com.sample.xmlapp.DOMClass Użyłem następująco

 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); 

Odpowiedz

2

Twój w dokumencie pamięci zostanie zmieniony, ale będziesz musiał ponownie zapisać go do pliku.

warto dodać to do pisania dokumentu do pliku ponownie:

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

jeśli użyłem powyżej klasy TransformerFactory otrzymuję następujący błąd w jaki sposób mogę rozwiązać ten błąd 07-07 12: 36: 22,361: ERROR/AndroidRuntime (12276): java.lang.VerifyError: com.fitzgerald.xmlapp.DOMClass –

+0

Który poziom interfejsu API masz? Wygląda na to, że starsi nie mają transformatora. Zobacz [ten post] (http://stackoverflow.com/questions/2290945/writing-xml-on-android), jeśli tak jest. – wjans

Powiązane problemy