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