2009-08-18 4 views

答えて

3

残念なことに、標準と第2の変換の結果(HTML)準拠XSLT 1.0:いいえ、これは不可能です。

XSLT 2.0では、テンプレートの戻り値を別のテンプレートの入力として使用できます。そのため、XSLT 2.0へのアップグレード(これは他の多くの面でも簡単に操作できます)では、この制限が解決されます。

もう1つの回避策は、node-set拡張機能を使用していますが、これは標準ではないため、明らかにどこでも同じようにサポートされています。詳しくは、http://www.xml.com/pub/a/2003/07/16/nodeset.htmlを参照してください。

1

これはサポートされています - 最初の変換の結果を<xsl:variable/>でキャプチャし、テンプレート(おそらく異なるモード)をxmlドキュメント/フラグメントの先頭の子(または他の子孫)に適用しますxsl:変数に格納されます。

XSLT 1.0では、xsl:変数(RTF - 結果ツリーフラグメントタイプ)の内容を通常のXML文書/フラグメントに変換するxxx:node-set()拡張機能を使用する必要があります。

この拡張関数は、XSLT 1.0拡張関数の「最も標準的で広く実装されている」ライブラリであるEXSLTによってかなり標準化されています。

+0

1.0では「結果ツリーの断片」データ型の必要性を理解したことはありません。それはかなり頻繁に私に噛まれている、と私は本当になぜ最初に存在するのか分からない。あなたはこれに光を当てることができますか? – Tomalak

+0

@Tomalak XSLT 1.0 WGにあった人々の中には、XSLTをプログラミング言語として使用しないために、James Clarkがこれを意図的に行った人もいます...もちろん、これは言語を止めるものではなく、単純な拡張機能とFXSLのようなライブラリは、XSLTの何かを行うことができます。その後、XSLT 2.0が登場し、この間違いが修正されました。 –

関連する問題