相关疑难解决方法(0)

来自javax.xml.transform.Transformer的漂亮打印输出,只有标准的java api(缩进和Doctype定位)

使用以下简单代码:

package test;

import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;

public class TestOutputKeys {
    public static void main(String[] args) throws TransformerException {

        // Instantiate transformer input
        Source xmlInput = new StreamSource(new StringReader(
                "<!-- Document comment --><aaa><bbb/><ccc/></aaa>"));
        StreamResult xmlOutput = new StreamResult(new StringWriter());

        // Configure transformer
        Transformer transformer = TransformerFactory.newInstance()
                .newTransformer(); // An identity transformer
        transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "testing.dtd");
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        transformer.transform(xmlInput, xmlOutput);

        System.out.println(xmlOutput.getWriter().toString());
    }

}
Run Code Online (Sandbox Code Playgroud)

我得到输出:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Document comment --><!DOCTYPE aaa SYSTEM "testing.dtd">

<aaa>
<bbb/>
<ccc/>
</aaa>
Run Code Online (Sandbox Code Playgroud)

问题A:doctype标签出现在文档注释之后.是否有可能在文件评论之前出现?

问题B:如何仅使用JavaSE 5.0 …

java xml pretty-print

55
推荐指数
2
解决办法
8万
查看次数

标签 统计

java ×1

pretty-print ×1

xml ×1