XmlDocument )doc ).write()方法public void write (OutputStream out) throws IOException
public void write (Writer out) throws IOException
public void write (Writer out, String encoding) throws IOException 
可以( ( XmlDocument )doc ).write( out,"gb2312" );

解决方案 »

  1.   

    一楼的方法我也想过了。但是这个是设置字符串的charset 。我想要得是xml 中有<?xml version="1.0" encoding="utf-16"?>  中的encoding  部分。 该怎么设置?
      

  2.   

    原来的xml为Books.xml
    <?xml version="1.0" encoding="GBK"?><Information>
      
      
      <Topic>的</Topic>
      
      
      <Content>练习</Content>
      
      
      <Date>2002-02-3</Date>
      
      
      <Source>3333</Source>
    </Information>a.javaimport javax.xml.parsers.*;
    import org.w3c.dom.*;
    import org.apache.crimson.tree.*;
    import java.io.*;public class a 
    {
    public static void  main(String args[])
    {
    try
      {
      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder=factory.newDocumentBuilder();
        Document doc=builder.parse("Books.xml");     
        NodeList nl =doc.getElementsByTagName("Information");
         Element node=(Element) nl.item(0);
        
                node.getElementsByTagName("Topic").item(0).getFirstChild().setNodeValue("aaa");
                node.getElementsByTagName("Content").item(0).getFirstChild().setNodeValue("bbb");
                node.getElementsByTagName("Date").item(0).getFirstChild().setNodeValue("ccc");
                node.getElementsByTagName("Source").item(0).getFirstChild().setNodeValue("ddd");
                
               StringWriter  str = new StringWriter();
                 ((XmlDocument)doc).write(str,"gb2312");
                 System.out.println(str.toString());
     }
     catch(Exception e)
     {
        System.out.println(e.getMessage());
     
     }
     
    }
    }
    输出
    <?xml version="1.0" encoding="gb2312"?><Information>
      
      
      
      <Topic>aaa</Topic>
      
      
      
      <Content>bbb</Content>
      
      
      
      <Date>ccc</Date>
      
      
      
      <Source>ddd</Source></Information>你做的不是这样吗