1

次のコードで XML ファイルを作成しています。

Source source = new DOMSource(rootElement);
Result result = new StreamResult(xmlFile);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform(source, result);

これは出力ファイルです:

<?xml version="1.0" encoding="UTF-8"?>
<feature-sequences>
<sequence>
<initial-frame>0</initial-frame>
<points>
<point>
<x>274.0</x>
<y>316.0</y>
</point>
...

たとえば、このファイルをインデントしたい:

<?xml version="1.0" encoding="UTF-8"?>
<feature-sequences>
  <sequence>
    <initial-frame>0</initial-frame>
    <points>
      <point>
        <x>274.0</x>
        <y>316.0</y>
      </point>
...

私のコードでの呼び出しsetOutputPropertyは問題を解決しません。実際には、テキストを新しい行で作成します(ただし、インデントはしません)。

外部ライブラリを必要とせずに、誰でもこれに対する解決策を持っていますか?

4

1 に答える 1

6

インデントするスペースの量も指定する必要がある場合があります。

transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
于 2009-07-04T20:21:44.553 に答える