0
我有一个在Java中有2个字符串参数的方法,它将字符串写入文件,现在我有dom文档,它拥有我需要写入文件但它不是字符串类型的值,如何可以我将它转换成字符串这里是我的代码:dom doc到字符串
import java.io.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
public class RemoveBlock {
public static boolean saveStringToFile(String fileName, String saveString)
{
boolean saved = false;
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(fileName));
try {
bw.write(saveString);
saved = true;
}
finally {
bw.close();
}
}
catch(IOException ex)
{
ex.printStackTrace();
}
return saved;
}
static public void main(String[] arg) {
try{
String xmlFile = "Management.xml";
File file = new File(xmlFile);
String remElement = "Physical_Order_List_Array";
if (file.exists()){
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(xmlFile);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer tFormer = tFactory.newTransformer();
Element element = (Element)doc.getElementsByTagName(remElement).item(0);
// Remove the node
element.getParentNode().removeChild(element);
// Normalize the DOM tree to combine all adjacent nodes
doc.normalize();
Source source = new DOMSource(doc);
Result dest = new StreamResult(System.out);
tFormer.transform(source, dest);
// System.out.println();
// saveStringToFile("emir.xml", "dsds"); -> write method
}
else{
System.out.println("File not found!");
}
}
catch (Exception e){
System.err.println(e);
System.exit(0);
}
}
}
那么有一个问题,当这条线是目前结果DEST =新StreamResult(System.out的);代码是成功从XML文件中删除Physical_Order_List_Array元素,但是当我尝试将其输出到文件时,无论字符串还是直接,xml文件保持不变。 – ant 2009-10-14 15:02:05
我没有这个问题的解决方案(没有时间自己测试它)。但是,您可以尝试使用另一个文件(或者先重命名旧文件),然后查看它是否有效。另外,这很可能是你想要做的事情,因为在程序崩溃后你不想让用户留下部分文件。 (即确保你在更改旧的文件之前成功地编写了你的文件) – sfussenegger 2009-10-14 15:15:13
已经尝试过了..它不起作用.. tnx我会尽力找出一些东西,尽管它不那么容易.. – ant 2009-10-14 15:27:42