Q:

this is my code ; reading is over how to write the writing and updating in local xml file in android source code? 

public class LocalXMLActivity extends Activity {
    /** Called when the activity is first created. */ 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); // set the layout.. it refers main.xml
                                       // from the layout folder. 
        InputStream is;
        DocumentBuilderFactory factory;
        DocumentBuilder builder;
        Document doc;
        NodeList allTitles = null;
        String dataAll;
        try {

            // Input Stream is used to read the bytes.  getResources refers to
            // the android resources(res)folder and open RawResource to the raw
            // folder under res. ( res/raw)
            is = this.getResources().openRawResource(R.raw.data);
            // Is to read the parser that prodcues from XML DOM. 
            factory = DocumentBuilderFactory.newInstance();
            // Once an instance of this class is obtained, XML can be parsed
            // from a variety of input sources.  These input sources are
            // InputStreams, Files, URLs, and SAX InputSources.  There are many
            // sources to take data from internet. 
            builder = factory.newDocumentBuilder();
            // the Document represents the entire HTML or XML document. 
            // Conceptually, it is the root of the document tree, and provides
            // the primary access to the document's data. 
            doc = builder.parse(is);
            // Retrieving the "company" node from xml
            allTitles = doc.getElementsByTagName("Company");

        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        dataAll = "";
        for (int i = 0; i < allTitles.getLength(); i++) {
            dataAll += allTitles.item(i).getChildNodes().item(0).getNodeValue() + "\n";
        }

        TextView tv = (TextView)findViewById(R.id.myTextView); // finds the
                                                               // widget"myTextView"
                                                               // from main.xml
        tv.setText(dataAll); // setting the dataAll value to myTextView. 
    }
}

xml file:res/raw/data.xml
    <? xml version="1.0" ? >
<content>
    <item>
        <Company>Google</Company>
        <Feature>Search Engine / Mail / Social Media</Feature>
        <url>www.google.com</url>
    </item>
    <item>
        <Company>Yahoo</Company>
        <Feature>Search Engine / Mail</Feature>
        <url>www.yahoo.com</url>
    </item>
</content>

the above code is only reading code,I have an XML file stored in the res/raw/data.xml that I am just reading, but how to write writing and updating in local xml file with inside reading source code write to writing and updating in local xml file 

A:

You can create a new file on SD card like this:
File Directory=  new File(Environment.getExternalStorageDirectory()
                        + File.separator + "working" +File.separator+"accounts");

File masterXMLfile = new File(Directory,"MasterCategories.xml");
                 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                  //Get the DocumentBuilder
                  DocumentBuilder docBuilder = null;
                try {
                    docBuilder = factory.newDocumentBuilder();
                } catch (ParserConfigurationException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                  //Create blank DOM Document
                  Document doc = docBuilder.newDocument();

                  //create the root element
                  Element root = doc.createElement("Categories");
                  //all it to the xml tree
                  doc.appendChild(root);
                  for(int i =0; i < nodeArray.length;i++)
                  {
                      System.out.println("entered into if loop");
                      Element subroot = doc.createElement("Category");
                      root.appendChild(subroot);
                      Element nameNode = doc.createElement("Name");
                      nameNode.appendChild(doc.createTextNode(nodeArray[i]));
                      subroot.appendChild(nameNode);

                      Element thumbNailNode = doc.createElement("thumbnail");
                      thumbNailNode.appendChild(doc.createTextNode(nodeArray[i]+".jpg"));
                      subroot.appendChild(thumbNailNode);
                      Element descriptionNode = doc.createElement("description");
                      descriptionNode.appendChild(doc.createTextNode(nodeArray[i]+" data"));
                      subroot.appendChild(descriptionNode);
                  }
                  TransformerFactory transfactory = TransformerFactory.newInstance();
                    Transformer transformer= null;
                    try {
                        transformer = transfactory.newTransformer();
                    } catch (TransformerConfigurationException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                    transformer.setOutputProperty(OutputKeys. INDENT, "yes");

                    // create string from xml tree
                    // StringWriter sw = new StringWriter();
                    // StreamResult result = new StreamResult(sw);
                    FileWriter categoriesFW = null;
                    try {
                        categoriesFW = new FileWriter(masterXMLfile);
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    StreamResult result = new StreamResult(categoriesFW);
                    DOMSource source = new DOMSource(doc);
                    try {
                        transformer.transform(source, result);
                    } catch (TransformerException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                if(!masterXMLfile.exists())
                {
                    try {
                        masterXMLfile.createNewFile();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }

