XSLT вставка TXT-файла

Я использую XSLT для преобразования XML-файла в HTML-файл.

Я хотел бы вставить текстовый файл в HTML как часть преобразования.

это возможно?

3 ответов


у вас есть несколько вариантов:

  1. если вы можете окружить простой текст в <text></text> теги, вы можете импортировать его с document(). Это работает в XSLT1.0, и не требует другого языка программирования.
  2. если вы не можете изменить исходный файл, но у вас есть XSLT2.0, то вы можете сделать это с помощью unparsed-text().
  3. если у вас нет XSLT2.0, но вы используете Java, тогда вы можете быть в состоянии вызов Java функция. Платформы Microsoft, вероятно, будут предлагать аналогичные функции.

ну, решение, которое я в конечном итоге использовал, было несколько проще, чем предложенные выше. Я использовал следующее:

<xsl:variable name="input-text" as="xs:string" select="unparsed-text('../Input/pipehat.txt', 'iso-8859-1')"/>

чтобы получить текст в переменную, просто выведите переменную в соответствующем месте.

<xsl:value-of select="$input-text"/>

В дополнение к упомянутым параметрам Matthijs Bierman вы также можете передать содержимое текстового файла в преобразование в качестве аргумента, если среда, с которой вы работаете, поддерживает это.

например, в .NET программа, выполняющая преобразование, может прочитать файл в строковую переменную, добавить его в качестве параметра в XsltArgumentList "объект", и передать этот объект в XslCompiledTransform ' s Transform метод.