xslt выдает результат, который не заканчивается символом возврата каретки (перевод строки).

У меня есть скрипт xslt, который преобразует файл xml в другой файл xml. Проблема, с которой я сталкиваюсь, заключается в том, что полученный файл xml не заканчивается новой строкой, как хорошо работающий файл Linux.

Я использую <xsl:output method="xml" indent="yes"/>, чтобы код был хорошо идентифицирован.

Есть ли способ сообщить xslt, что это режим Linux, и он должен добавить новую строку в конце вывода?

Спасибо, Анна


person Anna    schedule 01.08.2010    source источник
comment
Можете ли вы объяснить, какие проблемы возникают, когда отсутствует последняя новая строка?   -  person Tomalak    schedule 01.08.2010
comment
Я думаю, что это не проблема XSLT, а проблема следующего шага в конвейере, которая, похоже, не может обрабатывать XML-документы...   -  person    schedule 02.08.2010
comment
Да, действительно, это проблема следующего шага в конвейере. Я просто исправил следующий шаг, и пусть это будет.   -  person Anna    schedule 12.08.2010


Ответы (2)


Оканчивается ли файл XML символом новой строки должен, не имеет значения.

Однако вы можете попробовать добавить новую строку вручную с помощью эквивалента этого:

<xsl:template match="/">
  <root>
    <xsl:apply-templates select="other/processing" />
  </root>
  <xsl:value-of select="'&#xA;'" />
</xsl:template>

Если это не работает для вашего процессора XSL (т. е. новая строка обрезается), вам следует подумать об изменении последовательной цепочки обработки, чтобы игнорировать «отсутствующую» новую строку.

person Tomalak    schedule 01.08.2010
comment
Я исправил следующий шаг в конвейере. Спасибо. - person Anna; 12.08.2010

Попробуйте method="text" и используйте код новой строки (&#10;) там, где вам это нужно.

person Zabba    schedule 01.08.2010
comment
Это не сработало для меня. Если я использую метод=текст, то весь создаваемый мной xml исчезает. Если я добавляю только код новой строки, он игнорируется. - person Anna; 01.08.2010