希望生成的是如下效果:
<users>
  <!--the xml document about some login system information of users-->
  <user id="1">
    <username>yy</username>
    <password>1234
5678</password>
  </user>
</users>但每次都是该效果:
<users>
  <!--the xml document about some login system information of users-->
  <user id="1">
    <username>yy</username>
    <password>12345678</password>
  </user>
</users>附上源码,如下:
/*
 * Main.java
 *
 * Created on 2008年9月18日, 下午11:28
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */package test;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.List;import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
 *
 * @author Administrator
 */
public class Main {
    
    /** Creates a new instance of Main */
    public Main() {
    }
    
    public static void main(String[] args) {
// TODO Auto-generated method stub
        Main user = new Main();
//user.newXML();
        user.newXML();
    }
    
    public void newXML(){
        /**
         *  users.xml
         */
        Document doc = DocumentHelper.createDocument(); //users.xml
        
        
        /**
         * 根元素 users
         */
        Element users = doc.addElement("users"); //根元素 users
        doc.setRootElement(users);
        users.addComment("the xml document about some login system information of users");
        
        
        /**
         * 根元素 users 下的子元素 user
         */
        Element user = users.addElement("user"); // 新增 users 的一个子元素 user
        user.addAttribute("id","1"); //增加user的一个属性,并设置此属性值
        Element username = user.addElement("username"); // 新增 user 元素的子元素 username
        username.setText("yy"); //设置 username 的值
        Element password = user.addElement("password"); // 新增 user 元素的子元素 password
        String   crlf=System.getProperty("line.separator");
        password.setText("1234"+crlf+"5678"); //设置 password 的值
      
        /**
         * 通过 org.dom4j.io.OutputFormat 来设置XML文档输出格式
         */
        OutputFormat format = OutputFormat.createPrettyPrint(); //设置XML文档输出格式
        format.setEncoding("GB2312"); //设置XML文档的编码类型
//        format.setSuppressDeclaration(true);
//        format.setIndent(true); //设置是否缩进
//        format.setIndent("   "); //以空格方式实现缩进
//        format.setNewlines(true); //设置是否换行
        
        
        /**
         *  通过 org.dom4j.io.XMLWriter 创建XML文档(写)
         */
        try {
            XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(new File("a.xml")),format);
            xmlWriter.write(users);
            xmlWriter.close();
        } catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
            e.printStackTrace();
        } catch (FileNotFoundException e) {
// TODO Auto-generated catch block
            e.printStackTrace();
        }catch (IOException e) {
// TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
}
求高人解,急!

解决方案 »

  1.   

    看代码应该没有问题啊,你把password.setText("1234"+crlf+"5678"); 里的
    crlf换成"\n\r"试试
      

  2.   

    也试过了,同样的结果,还是被编译成一个空格十六进制的换行是0A,但无论是crlf还是\n\r,都被编译成了20,就是一个空格,不知道是什么原因,是DOM4J的原因吗?
      

  3.   

    恩.很有可能Dom4j做的处理.
    你为什么一定要放个回车在节点里呢?有什么特别的意义吗?
    可不可以放个特别的占位符呢.如"@_@br@_@".呵呵.瞎想的.
    另外XML似乎还支持"<[!CDATA[]]>"具体怎么写,我忘记了,
    你查下,这个可能能保存回车.
      

  4.   


    我想在其中放入JAVA的代码,每一行JAVA代码如果不回车分行的话,看起来太不美观了,哈哈
      

  5.   

    XMLWriter writer = new XMLWriter(System.out, format);
    writer.setEscapeText(false);