Я преобразовываю XML в XML и хочу автоматически отступать результат.
Так что я использую <xsl:output method="xml" indent="yes"/>
При выполнении этого с помощью скомпилированного преобразования .net4 он работает хорошо, пока на выходе нет текстового узла.
Когда я добавляю текст <xsl:text>some text</xsl:text>
отступы всего файла XML ушли и результат XML состоит из нескольких очень длинных строк вместо (хорошо сформирован, но нечитаемый ...)Отступ и текстовые узлы при преобразованиях xslt с .net
Пример:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<Root>
<!--xsl:text>some test</xsl:text-->
<Test1/>
<Test2/>
</Root>
</xsl:template>
</xsl:stylesheet>
Результат:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Test1 />
<Test2 />
</Root>
Результат при удалении комментария от <xsl:text>some test</xsl:text>
:
<?xml version="1.0" encoding="utf-8"?>
<Root>some test<Test1 /><Test2 /></Root>
Любые идеи?
Я просто пробовал это, и он отлично работал - не могли бы вы показать пример, где вы добавляете текст? – Filburt
@Filburt Вы попробовали это с .net (4) скомпилированным преобразованием? Я знаю, что другие процессоры xslt ведут себя по-другому. –
Да, я использовал .Net 4.0 и 'XslCompiledTransform'. – Filburt