使用Transformer缩进XML内部数据



我将在本教程中编写一个XML文件。我申请了

transformer.setOutputProperty("{http://xml.apache.org/xalan}indent-amount", "4");
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

xml格式设置的代码。

但对于长xml数据,它向我展示了类似khis:的xml

<kml>
<Placemark>
    <name>yong</name>
    <Polygon>
        <timezone>EASTERN</timezone>
        <outerBoundaryIs>
            <LinearRing>
                <coordinates>-77.05788457660967,38.87253259892824,100
-77.05465973756702,38.87291016281703,100
-77.05315536854791,38.87053267794386,100
-77.05552622493516,38.868757801256,100
-77.05844056290393,38.86996206506943,100
-77.05788457660967,38.87253259892824,100</coordinates>
            </LinearRing>
        </outerBoundaryIs>
    </Polygon>
</Placemark>
</kml>

但我想用以下方式格式化:

<kml>
<Placemark>
    <name>yong</name>
    <Polygon>
        <timezone>EASTERN</timezone>
        <outerBoundaryIs>
            <LinearRing>
                <coordinates>
                    -77.05788457660967,38.87253259892824,100
                    -77.05465973756702,38.87291016281703,100
                    -77.05315536854791,38.87053267794386,100
                    -77.05552622493516,38.868757801256,100
                    -77.05844056290393,38.86996206506943,100
                    -77.05788457660967,38.87253259892824,100
                </coordinates>
            </LinearRing>
        </outerBoundaryIs>
    </Polygon>
</Placemark>
</kml>

如何做到这一点?是否有任何方法或变压器中的其他属性可以通过这种格式实现?提前谢谢。。

我不知道这是否可能。

我想你的字段坐标是字符串。Transformer确实修改了字符串的内容,以防止例如字符串中的更改。字符串是一个空格、制表符和换行符都有意义的文本。

如果您需要将此字段对齐,您可以:

  • 手动执行(假设坐标字段始终位于第五级,并添加您自己的\n\t\t\t\t\t
  • 如果允许,请更改坐标字段的类型

相关内容

  • 没有找到相关文章

最新更新