異なるXSLTファイル(2段階表示)でXMLファイルを2回変換しようとしています。それは可能ですか?XSLTのみで2段階ビューを作成することは可能ですか
例: data.xmlの - > first.xslによって形質転換 - > second.xslによって形質転換 - - >第1変換(XML)の結果>
異なるXSLTファイル(2段階表示)でXMLファイルを2回変換しようとしています。それは可能ですか?XSLTのみで2段階ビューを作成することは可能ですか
例: data.xmlの - > first.xslによって形質転換 - > second.xslによって形質転換 - - >第1変換(XML)の結果>
残念なことに、標準と第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を参照してください。
これはサポートされています - 最初の変換の結果を<xsl:variable/>
でキャプチャし、テンプレート(おそらく異なるモード)をxmlドキュメント/フラグメントの先頭の子(または他の子孫)に適用しますxsl:変数に格納されます。
XSLT 1.0では、xsl:変数(RTF - 結果ツリーフラグメントタイプ)の内容を通常のXML文書/フラグメントに変換するxxx:node-set()拡張機能を使用する必要があります。
この拡張関数は、XSLT 1.0拡張関数の「最も標準的で広く実装されている」ライブラリであるEXSLTによってかなり標準化されています。
1.0では「結果ツリーの断片」データ型の必要性を理解したことはありません。それはかなり頻繁に私に噛まれている、と私は本当になぜ最初に存在するのか分からない。あなたはこれに光を当てることができますか? – Tomalak
@Tomalak XSLT 1.0 WGにあった人々の中には、XSLTをプログラミング言語として使用しないために、James Clarkがこれを意図的に行った人もいます...もちろん、これは言語を止めるものではなく、単純な拡張機能とFXSLのようなライブラリは、XSLTの何かを行うことができます。その後、XSLT 2.0が登場し、この間違いが修正されました。 –