Java 附加XML文件后将其写入android

Java 附加XML文件后将其写入android,java,android,xml,Java,Android,Xml,我需要用android编写XML文件,并用新文件替换它。代码工作正常,但我的XML文件中没有任何更改 有什么想法吗 try{ FileOutputStream fOut = openFileOutput("/data/data/test.fileshow/files/Landmarks.xml", MODE_WORLD_READABLE); OutputStreamWriter osw = new OutputStreamWriter(fOut); String filepath = "L

我需要用android编写XML文件,并用新文件替换它。代码工作正常,但我的XML文件中没有任何更改

有什么想法吗

try{

FileOutputStream fOut = openFileOutput("/data/data/test.fileshow/files/Landmarks.xml", MODE_WORLD_READABLE);

OutputStreamWriter osw = new OutputStreamWriter(fOut); 
String filepath = "Landmarks.xml";

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
     DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
     Document doc = docBuilder.parse(filepath);
     Element Row, Longitude, Latitude, Title, Category, Rating;

            Node staff = doc.getElementsByTagName("Root").item(0);

         Row=doc.createElement("Row");
         Longitude=doc.createElement("Longitude");
         Longitude.appendChild(doc.createTextNode("555"));
         Row.appendChild(Longitude);
         Latitude=doc.createElement("Latitude");
         Latitude.appendChild(doc.createTextNode("ABCCamera"));
         Row.appendChild(Latitude);
         Title=doc.createElement("Title");
         Title.appendChild(doc.createTextNode("title"));
         Row.appendChild(Title);
         Category=doc.createElement("Category");
         Category.appendChild(doc.createTextNode("category"));
         Row.appendChild(Category);
         Rating=doc.createElement("Rating");
         Rating.appendChild(doc.createTextNode("rating"));
         Row.appendChild(Rating);
         staff.appendChild(Row);


        //write the content into xml file
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        DOMSource source = new DOMSource(doc);
        StreamResult result =  new StreamResult(new File(filepath));
        transformer.transform(source, result);

        osw.flush();
        osw.close();

      }catch(ParserConfigurationException pce){
     pce.printStackTrace();
      }catch(TransformerException tfe){
     tfe.printStackTrace();
      }catch(IOException ioe){
     ioe.printStackTrace();
      }catch(SAXException sae){
     sae.printStackTrace();
      }

我在编写DOM文档时遇到了问题,这使我走上了正确的道路。根据您的代码,我必须将OutputStreamWriter绑定到StreamResult

实例化后:

StreamResult result =  new StreamResult(new File(filepath));
请拨打以下电话:

result.setWriter(osw);

在执行转换之前。这对我很有效。

我在编写DOM文档时遇到了问题,这使我走上了正确的道路。根据您的代码,我必须将OutputStreamWriter绑定到StreamResult

实例化后:

StreamResult result =  new StreamResult(new File(filepath));
请拨打以下电话:

result.setWriter(osw);

在执行转换之前。这对我很有用。

如果你缩进代码,人们会更愿意帮助你。你初始化、刷新和关闭“osw”,但从来没有向它写入任何内容。我尝试过osw.write(),但我不知道如何得到结果。我需要有人告诉我如何用android将结果写入文件。感谢您编辑代码视图(thanathos=),如果您缩进代码,人们会更愿意帮助您。您初始化、刷新并关闭“osw”,但从未实际写入任何内容。我尝试过osw.write(),但不知道如何获得结果。我需要有人告诉我如何用android将结果写入文件。感谢您编辑代码视图(thanathos=),此解决方案不仅解决了该问题,还解决了十几个其他错误!谢谢,德本内特!这个解决方案不仅解决了这个问题,还解决了其他十几个bug!谢谢,德本内特!