Сохранять пробелы между атрибутами в XSLT-преобразовании - PullRequest
3 голосов
/ 13 января 2012

У меня есть следующий 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

1 Ответ

3 голосов
/ 13 января 2012

Нет, не со стандартными инструментами XML / XSLT.

Эта информация не является частью информационного набора XML и будет потеряна при чтении XML анализатором XML.Следовательно, не может быть сохранено в выходных данных.

Вам потребуется изменить выходные данные, применив что-то еще для применения такого рода форматирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...