让Java使用制表符而不是空格来缩进

时间:2010-04-02 01:18:45

标签: java xml indentation

我正在创建一个XML文档。我让它缩进使用 TransformerFactory.setAttribute("indent-number", new Integer(2)); Transformer.setOutputProperty(OutputKeys.INDENT, "yes");

是否可以让Java使用制表符而不是缩进空格?怎么样?

3 个答案:

答案 0 :(得分:2)

不,不是一般的。 XSLT规范不允许指定缩进时使用的WHAT空格。

但是,它可能是要配置的特定于XSLT处理器的项目。查看您正在使用的文档。

如果您真的想要这个,那么您可以在输出上使用afterburner XSLT脚本,它可以对text() - 节点执行任何操作。

答案 1 :(得分:1)

是的,标签被一些人认为是邪恶的。但是,如果要使用TransformFactory并希望更改缩进行为以使用制表符而不是空格,则需要提供自己的ContentHandler实现。然后将ContentHandler的实现传递给新的SAXResult - 将其作为“结果”传递给Transformer.transform(...)。很多篮球跳过。 另一个考虑因素可能是在输出上使用智能XSLT。

答案 2 :(得分:0)

我想不是。

您可以获取结果并对其进行处理,替换调用str.replace("\n ", "\n\t")(或您想要的任意数量的空格)。

但我建议不要这样做 - 标签不是独立于平台的。