Сделать отступ для внутренних данных XML с помощью Transformer

Я пишу файл 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 это показывает мне XML как KHIS:

<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>

Как это сделать? Есть ли какой-либо способ или другое свойство в преобразователе из этого форматирования может быть достигнуто? Заранее спасибо..

1 ответ

Я не знаю, возможно ли это.

Я полагаю, что ваша полевая координата является строкой. Transformer действительно изменяет содержимое строки, чтобы предотвратить, например, изменения в вас. Строка - это текст, в котором значения пробелов, табуляции и перевода строки имеют смысл.

Если вам нужно выровнять это поле, вы можете:

  • сделать это вручную (при условии, что поля координат всегда находятся на пятом уровне и добавить свой собственный \ n \ t \ t \ t \ t \ t.
  • изменить тип поля координат, если вам разрешено...
Другие вопросы по тегам