日期:2014-05-20  浏览次数:20809 次

创建xml时,设置xml编码问题??急急急
Java code


package com.Gavin.tools.xml;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
import java.io.*;
/*<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE catalog SYSTEM "file://c:/Dtds/catalog.dtd">
<catalog> 
<!--An XML Catalog-->
<?target instruction?> 
<journal title="XML Zone" publisher="IBM developerWorks">
<article level="Intermediate" date="December-2001"> 
<title>Java configuration with XML Schema</title>
<author> 
    <firstname>Marcello</firstname> 
    <lastname>Vitaletti</lastname> 
</author>
</article> 
</journal> 
……//五本书
</catalog> */

public class XmlDom4J {
    public void generateDocument() {
        
        Document document = DocumentHelper.createDocument();
        
        document.setXMLEncoding("GBK");
//        System.out.println(document.getXMLEncoding());
        
        Element root = document.addElement("catalog");    
        
        root.addComment("An XML Catalog");        
        root.addProcessingInstruction("target", "text");        
        /**
         * 为此
         */
        for(int i = 0; i < 5; i++) {
            Element journal = root.addElement("journal");
            journal.addAttribute("title", "XML Zone");
            journal.addAttribute("publisher", "IBM developerWorks");
            
            Element article = journal.addElement("article");
            article.addAttribute("level", "Intermediate");
            article.addAttribute("date", "December-2001");
            
            Element title = article.addElement("title");
            title.setText("Java configuration with XML Schema");
            
            Element author = article.addElement("author");
                Element firstName = author.addElement("firstname");
                firstName.setText("Marcello");
                Element lastName = author.addElement("lastname");
                lastName.setText("Vitaletti");            
        }
        
        document.addDocType("catalog", null, "file://c:/Dtds/catalog.dtd");
        
        try {
            
            XMLWriter output = new XMLWriter(new FileWriter(new File("c:/catalog.xml")));
            output.write(document);
            output.close();
            
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }

    public static void main(String[] argv) {
        XmlDom4J dom4j = new XmlDom4J();
        dom4j.generateDocument();
    }
}




我想问的是:为什么我用document.setXMLEncoding("GBK");设置创建的xml编码确实不行的呢?请指教

------解决方案--------------------
Java code
 
OutputFormat format = OutputFormat.createPrettyPrint();
  format.setEncoding("GBK");
XMLWriter output = new XMLWriter(new FileWriter(new File("c:/catalog.xml")),format);
      output.write(document);

------解决方案--------------------
探讨
Java code
OutputFormat format= OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
XMLWriter output=new XMLWriter(new FileWriter(new File("c:/catalog.xml")),format);
output¡­