boancpu,
  你好!我在这之前也是用JDOM的,如下:    try{
              Document doc = new Document(e);              //XMLOutputter serializer = new XMLOutputter();
               XMLOutputter serializer = new XMLOutputter("",true,"GBK");
                OutputStream op = new ByteArrayOutputStream();
                serializer.output(doc, op);
               return op.toString();        }catch(Exception ex){
            throw new IOException("element2String"+ex.getMessage()) ;
        }    但是用JDOM在uninx环境下会有中文乱码问题,无论我在
    XMLOutputter serializer = new XMLOutputter("",true,"GBK");
    这行里给它设什么编码:GBK,GB2312,UTF-8。(注:其它不通过jdom的中文均能在unix下正常显示。)
    而在windows却完全没有这个问题。请问你是否有处理过unix下的有关xml中文问题?    一直没找到解决办法后,我怀疑是JDOM出了问题(JDOM 至今为止还没有一个正式发布的版本),所以我就改用了org.w3c.dom,但是dom的document对象的toString()为何却返回null.项目正在紧张进行却卡在这个地方,真让我一筹莫展。
   谁有这方面的经验?请不吝赐教!

解决方案 »

  1.   

    对不起,我没有处理过unix下的有关xml中文问题。
    一般用GB2312码。
    下面是一段JDOM的例子,不知是否有用!
    import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.output.*;
    import java.io.*;
    public class cute{ public static void main(String args[]){
    try{ org.jdom.input.SAXBuilder sb=new org.jdom.input.SAXBuilder();
    //创建文档
    org.jdom.Document    doc=sb.build(new FileInputStream("c:\\example.xml"));
    //加入一条处理指令
    org.jdom.ProcessingInstruction pi = new ProcessingInstruction("xml-stylesheet","href=\"bookList.html.xsl\" type=\"text/xsl\"");
    //把这条处理指令,加入文档中
    doc.addContent(pi);
    //获得这个文档得跟元素
    org.jdom.Element el=doc.getRootElement();
    //获得这个跟元素,的所有子元素
    java.util.List ls=el.getChildren();
    //得到第一个子元素
    org.jdom.Element book=(Element)ls.get(0);
    //给这个字元素添加一条属性
    org.jdom.Attribute attr=new Attribute("hot","true");
    book.setAttribute(attr); //获得这个元素的子元素,(指定)
    org.jdom.Element el2=book.getChild("author");
    //输出这个元素的值
    System.out.println(el2.getName());
    //给这个元素的值改个名字
    el2.setText("cute"); //再指定元素获得这个值
    org.jdom.Element el3=book.getChild("price");
    //给这个值换个值
    el3.setText(Float.toString(50.0f));
    String a="";
    boolean bool=true; org.jdom.output.XMLOutputter xml= new org.jdom.output.XMLOutputter(a,bool,"gb2312");
    xml.output(doc,new FileOutputStream("c:\\cute.xml")); }catch(Exception e){
    System.out.println(e.getMessage()); } 
    }