Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: AnnaОтветов: 2

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

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

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

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

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

linuxxsltnewline

Ответы

Ответ 1 · рейтинг 2 · Tomalak

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

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

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

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

Ответ 2 · Zabba

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы