我用javax的xml包下的在Transformer对象中使用
setOutputProperty(OutputKeys.INDENT, "yes")方法实现了换行,
但是没有实现缩进,因此想请教一下如何实现格式化缩进.

解决方案 »

  1.   

    使用jdom的话,可以用下面的方法设置换行和缩减
    XMLOutputter XMLOut = new XMLOutputter();
    XMLOut.setNewlines(true);
    XMLOut.setIndent("  ");
    XMLOut.setExpandEmptyElements(true);
      

  2.   

    对,写xml的时候可以设几个变量靠+2 -2 当节点名字变化时,就去加减空格
      

  3.   

    不好意思,这段时间都没上网.
      之前在控制台我已经实现了xml文档缩进格式的打印.只是生成的文档只能实现换行,不能实现缩进.请教一下"风之翼"是不是除了自己写流,否则在javax.xml包下用他的API实现不了这个功能啊!毕竟用它的Transformer文档生产方式比较方便,不用自己去写流了.
      JDom的方式给我提供了新思路,我会去研究下的,但在我们公司除了jdk否则增加包是要申请和充分的论证后才可以的,比较繁琐.
      

  4.   

    如何在控制台打印带缩进格式的文档内容我在发帖之前已经通过递归算法实现了,我现在的问题是通过Transformer对象生成的xml文档无法实现缩进格式的文档.
      算法的问题自己花些时间想想就可以实现了没必要到网上来烦扰大家,API的问题就不是我自己想想就可以解决的了,所以想听听碰到同样问题的朋友,有没有什么好的解决办法.
      JDom是个好思路,可以考虑研究下.但我原来的程序用的是javax.xml下的API,有没有改动小些的办法啊!
      

  5.   

    可以尝试用下堆栈,或者用jdom就好使啦,jdom层次比较清晰,而且取值什么的非常方便!
      

  6.   

    可以用JDOM里面的Format类实现XMLOutputter xmlOut = new XMLOutputter(Format.getPrettyFormat());效果不错
      

  7.   

    加上这里最后一句:transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
    transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");