用的是什么包?jdom还是j2sdk?

解决方案 »

  1.   

    我用的是j2sdk。/n加到什么地方啊 能说的详细点吗?难道把换行加到dom tree中?
      

  2.   

    j2sdk中也有格式化的api,jdom和dom4j都有格式化的api,现在记得了。
    不过j2sdk中的格式化后的结果没有dom4j格式化后的好看。
      

  3.   

    Element root = 
            (Element) document.createElement("rootElement");     document.appendChild(root);    root.appendChild(document.createTextNode("\n\t"));
        root.appendChild( document.createTextNode("Some text") );
        root.appendChild(document.createTextNode("\n"));得到如下结果:
    <?xml version="1.0" encoding="UTF-8"?><rootElement>
        Some text
    </rootElement>但是,用尽办法不能变成
    <?xml version="1.0" encoding="UTF-8"?>
    <rootElement>
        Some text
    </rootElement>如果打开一个现成的XML文档不做任何修改直接保存成另外一个XML文件,根node同样会出现上述问题。使用jdom不会出现这种情况。
      

  4.   

    呵呵,搞定!    TransformerFactory tf = TransformerFactory.newInstance();
        Transformer ts = tf.newTransformer();    // 前面的代码加上这一句
        ts.setOutputProperty(OutputKeys.INDENT, "yes");效果:
    <?xml version="1.0" encoding="UTF-8"?>
    <rootElement>
    Some text
    </rootElement>
      

  5.   


    我没发现J2SDK有现成的“保证输出xml文件时缩进”的办法。在你帖子的回复中,我使用
        root.appendChild(document.createTextNode("\n\t"));
    的方法。
    你可以单独创建一个textNode
        document.createTextNode("\t")
    自己控制其中“\t”的数量,实现缩进。这种方法虽然麻烦,但是也能奏效。
      

  6.   

    谢谢UnAgain兄的热心帮助,我说的“子标签跑到父标签前面”其实就是指的缩进的问题,有时候文本没有缩进,就会出现“子标签跑到父标签前面”的情况了,再次谢谢你!