Я хочу использовать один и тот же xslt и проверять разные выходные данные, то есть xml, html, xhtml и text;Конечно, я делаю это:
<xsl:output method="xml" indent="yes"/>
ИЛИ
<xsl:output method="html" indent="yes"/>
Но я хочу динамически изменять через параметр с сообщением, по умолчанию xml, если я его опускаю.
Я попробовал это:
<xsl:param name="outputMethod" select="xml" />
<xsl:output method="$outputMethod"indent="yes"/>
Безуспешно, вывод:
XTSE0020: Invalid value for serialization method: must be
xml|html|xhtml|text|json|adaptive, or a QName in '{uri}local' form
и попробовал это гораздо более запутанным способом, я знаю:
<xsl:variable name="thisDocument" select="document('')" />
<xsl:param name="outputMethod" select="xml" />
<xsl:variable name="myOutputMethod" select="$outputMethod"/>
<xsl:output method="$thisDocument/xsl:stylesheet/myOutputMethod" indent="yes"/>
Безуспешно, вывод:
Static error at xsl:output on line 10 column 85 of CopyingNodes.xslt:
XTSE0020: Both the prefix {$thisDocument/xsl} and the local part
{stylesheet/myOutputMethod} are invalid
Errors were reported during stylesheet compilation
Итак, есть какие-нибудь исправления?предложения?
Или невозможно динамически изменить метод вывода xsl:
TIA