使用Transformer缩进生成的XML

14 浏览
0 Comments

使用Transformer缩进生成的XML

我正在尝试使用Java创建XML,并且在缩进方面遇到了问题。在下面的代码中,您可以看到将OutputKeys.INDENT设置为yes...

        //设置转换器
        TransformerFactory transfac = TransformerFactory.newInstance();
        Transformer trans = transfac.newTransformer();
        trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
        trans.setOutputProperty(OutputKeys.INDENT, "yes");
        //从XML树创建字符串
        StringWriter sw = new StringWriter();
        StreamResult result = new StreamResult(sw);
        DOMSource source = new DOMSource(doc);
        trans.transform(source, result);
        String xmlString = sw.toString();
        //打印XML
        System.out.println(xmlString);

但是看起来没有影响,输出结果是:





a timestamp


methodName
String

String
int



SomeValue
AnotherValue

ReturnValue



0
0 Comments

Indent XML made with Transformer是一个在Java中使用Transformer工具对XML进行缩进的操作。下面将从内容中整理出该问题的出现原因和解决方法。

出现原因:

在XML文件中,通常情况下,XML元素之间的缩进是没有的,所有的内容都是紧凑排列的。然而,有时候我们需要对XML文件进行格式化,使其更易读,更直观。这时就需要对XML进行缩进操作。

解决方法:

在Java中,我们可以使用Transformer工具来实现对XML的缩进操作。具体步骤如下:

1. 首先,创建一个Document对象,用于表示XML文档。

2. 然后,创建一个TransformerFactory对象,用于创建Transformer对象。

3. 通过调用TransformerFactory的newInstance()方法,获取TransformerFactory实例。

4. 调用TransformerFactory的newTransformer()方法,创建一个Transformer实例。

5. 通过调用Transformer的setOutputProperty()方法,设置要进行缩进的属性。

- 使用OutputKeys.INDENT属性,将缩进设置为"yes",表示要对XML进行缩进处理。

- 使用"{http://xml.apache.org/xslt}indent-amount"属性,将缩进的空格数设置为"4",表示每个缩进级别使用4个空格。

6. 调用Transformer的transform()方法,将Document对象转换为XML文件。

- 使用DOMSource将Document对象包装成一个源对象。

- 使用StreamResult将转换后的XML输出到指定的文件中。

7. 如果需要将缩进后的XML输出到控制台,可以再次调用transform()方法,将StreamResult设置为System.out。

以上就是使用Transformer工具对XML进行缩进的方法。通过设置相应的属性,可以实现对XML的格式化操作,使其更易读、直观。

0
0 Comments

问题原因:

出现这个问题的原因是因为在使用Transformer生成XML时,默认的缩进量(indent-amount)为0,导致生成的XML文件没有缩进,不易于阅读和理解。

解决方法:

要解决这个问题,可以通过设置缩进量来使生成的XML文件更加易读。可以使用Transformer的setOutputProperty方法来设置缩进量。

具体的解决方法如下所示:

trans.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");

在上述代码中,通过调用setOutputProperty方法,并传入"{http://xml.apache.org/xslt}indent-amount"作为参数,可以设置缩进量为4。这样,生成的XML文件中的元素和属性将会按照4个空格进行缩进,使其更加清晰易读。

通过以上的解决方法,我们可以很方便地设置缩进量,使生成的XML文件具有更好的可读性,便于后续的处理和维护。

0