XSLT вставка TXT-файла
Я использую XSLT для преобразования XML-файла в HTML-файл.
Я хотел бы вставить текстовый файл в HTML как часть преобразования.
это возможно?
3 ответов
у вас есть несколько вариантов:
- если вы можете окружить простой текст в
<text></text>
теги, вы можете импортировать его сdocument()
. Это работает в XSLT1.0, и не требует другого языка программирования. - если вы не можете изменить исходный файл, но у вас есть XSLT2.0, то вы можете сделать это с помощью
unparsed-text()
. - если у вас нет 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
метод.