日期:2014-05-18  浏览次数:20763 次

dom4j处理转义字符,请大家帮忙啊!
本帖最后由 untatsu 于 2012-12-11 12:32:35 编辑
import org.dom4j.Document;
import org.dom4j.DocumentHelper;

public class DOM {
    public static void main(String[] args) throws Exception {
        Document doc = DocumentHelper.parseText("<root>&quot;</root>");
        System.out.println(doc.asXML());
    }
}


得到的结果:
<?xml version="1.0" encoding="UTF-8"?>
<root>"</root>


我希望不处理转义字符,能得到:
<?xml version="1.0" encoding="UTF-8"?>
<root>&quot;</root>


不管我从xml里读到,还是用字符串,转义字符都会变,我希望不处理转义字符,这样write到xml文件里也不处理。怎么办呢。


------解决方案--------------------
//转码加入xml文件的另一种方法  
  OutputFormat format = OutputFormat.createPrettyPrint();  
  format.setEncoding("UTF-8");  
  XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format);  
  writer.write(document);  
  writer.close();   
 }  
原出处:http://blog.csdn.net/tianyazaiheruan/article/details/8065722
------解决方案--------------------
import java.io.IOException;
import java.io.StringWriter;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
 
public class Test {
    public static void main(String[] args) throws Exception {
     Document doc = DocumentHelper.createDocument(); 
        doc.setXMLEncoding("GBK"); 
        Element root = doc.addElement("root"); 
        root.addText("&quot;");
     //Document doc = DocumentHelper.parseText("<root>&quot;</root>");
     System.out.println(doc.asXML());
     System.out.println(Test.formatXml(doc, "utf-8", false));
    }
    
    /** 
     * 格式化XML文档 
     *&