日期:2014-05-20  浏览次数:20765 次

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

------解决方案--------------------
用TEXT接口处理空白结点

------解决方案--------------------
可以记录和计算每个结点的缩进位置,在写下一个结点的时候,缩进到相应的位置,支持各种编程语言的记事本也应该是这样做的.
------解决方案--------------------
假期正好想写一个支持编程语言的记事本,支持缩进,语法高亮显示(用配置文件来配置支持的语言的关键字).
------解决方案--------------------
使用jdom的话,可以用下面的方法设置换行和缩减
XMLOutputter XMLOut = new XMLOutputter();
XMLOut.setNewlines(true);
XMLOut.setIndent( " ");
XMLOut.setExpandEmptyElements(true);
------解决方案--------------------
对,写xml的时候可以设几个变量靠+2 -2 当节点名字变化时,就去加减空格
------解决方案--------------------
不好意思,这段时间都没上网.
之前在控制台我已经实现了xml文档缩进格式的打印.只是生成的文档只能实现换行,不能实现缩进.请教一下 "风之翼 "是不是除了自己写流,否则在javax.xml包下用他的API实现不了这个功能啊!毕竟用它的Transformer文档生产方式比较方便,不用自己去写流了.
JDom的方式给我提供了新思路,我会去研究下的,但在我们公司除了jdk否则增加包是要申请和充分的论证后才可以的,比较繁琐.
------解决方案--------------------
用堆栈来处理,记录缩进的项目。
------解决方案--------------------
如何在控制台打印带缩进格式的文档内容我在发帖之前已经通过递归算法实现了,我现在的问题是通过Transformer对象生成的xml文档无法实现缩进格式的文档.
算法的问题自己花些时间想想就可以实现了没必要到网上来烦扰大家,API的问题就不是我自己想想就可以解决的了,所以想听听碰到同样问题的朋友,有没有什么好的解决办法.
JDom是个好思路,可以考虑研究下.但我原来的程序用的是javax.xml下的API,有没有改动小些的办法啊!
------解决方案--------------------
可以尝试用下堆栈,或者用jdom就好使啦,jdom层次比较清晰,而且取值什么的非常方便!
------解决方案--------------------
可以用JDOM里面的Format类实现

XMLOutputter xmlOut = new XMLOutputter(Format.getPrettyFormat());

效果不错

------解决方案--------------------
其实jdom很好用的