У меня есть следующий XML:
<?xml version="1.0"?>
<products>
<product at1="a"
at2="b"
at3="c">
</product>
</products>
и следующий XSLT:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Теоретически, xslt должен оставить входной xml без изменений. Однако вывод, который я получаю после обработки:
<?xml version="1.0"?>
<products>
<product at1="a" at2="b" at3="c">
</product>
</products>
Можно ли как-то помешать преобразователю переформатировать расстояние между атрибутами. Я понимаю, что и входной, и выходной xml функционально эквивалентны, но я хотел бы сохранить атрибут для формата строки для удобства чтения. Если это имеет значение, я использую xsltproc из Ubuntu для выполнения этого преобразования:
xsltproc -o test2.xml test.xslt test.xml