Java 附加XML文件后将其写入android
我需要用android编写XML文件,并用新文件替换它。代码工作正常,但我的XML文件中没有任何更改 有什么想法吗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
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!谢谢,德本内特!