[解決済み] xslt での配列の作成
2022-02-12 15:57:54
質問
xsltで配列を作成し、使用することができますか?もしそうなら、勉強するのに適した例がネット上にあるのでしょうか?そうでなければ、配列と同じような方法で値を保存する方法はありますか?
どのように解決するのですか?
XSLT 2.0では、どんなデータ型でもモデル化することができます。
例として
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes"/>
<xsl:variable name="array" as="element()*">
<Item>A</Item>
<Item>B</Item>
<Item>C</Item>
</xsl:variable>
<xsl:template match="/">
<xsl:value-of select="$array[2]"/>
</xsl:template>
</xsl:stylesheet>
どんな入力でも、出力。
B
XSLT 1.0ではTemporaly Result Treeデータ型は存在しません。結果ツリー・フラグメントというデータ型があるが、これはノード・セット演算子を使えない。したがって、唯一の方法は、拡張関数を使うことである。
node-set()
をEXSLTから取得しました(MSXSLには、組み込みの
node-set()
拡張もあります)。
つまり、拡張機能のないXSLT 1.0では、インライン・データ・モデルか、パラメータか、外部ドキュメントしか持てないのです。例として
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes"/>
<xsl:variable name="inline-array">
<Item>A</Item>
<Item>B</Item>
<Item>C</Item>
</xsl:variable>
<xsl:param name="array" select="document('')/*/xsl:variable[@name='inline-array']/*"/>
<xsl:template match="/">
<xsl:value-of select="$array[2]"/>
</xsl:template>
</xsl:stylesheet>
結果、任意の入力で
B
もしご希望であれば、XSLT 1.0 plus extensionsのサンプルを提供します(標準ではありません...)。
関連
-
[解決済み] XMLエラーです。ドキュメントの末尾に余分なコンテンツがあります
-
[解決済み] SOAPセキュリティヘッダとSOAPヘッダの違いについて
-
[解決済み] XMLファイルを別のXMLファイルに取り込むことはできますか?
-
[解決済み] 設定ファイルが整形式のXMLでない #2
-
[解決済み] XSLTで現在の日付を挿入することはできますか?
-
[解決済み] JSONのXSLT対応
-
[解決済み】XML スキーマ(XSD)検証ツール?[クローズド]
-
[解決済み】シェルからXPathワンライナーを実行する方法は?
-
[解決済み】XMLHttpRequest Originのnullが許可されない file:///からfile:///へのAccess-Control-Allow-Origin (Serverless)
-
[解決済み】XML属性とXML要素
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】XMLファイルに改行を追加する方法は?
-
[解決済み] XML: 後続のセクションでコンテンツが許可されていない
-
[解決済み] i:nil="true "とはどういう意味ですか?
-
[解決済み] なぜ、"StartTag. "というエラーが発生するのでしょうか?このXMLファイルをDTDでパースすると、"Invalid element name "というエラーが発生します。
-
[解決済み] ノード名の XPath ワイルドカード
-
[解決済み] Ruby XML to JSON Converter?
-
[解決済み] XMLファイルを別のXMLファイルに取り込むことはできますか?
-
[解決済み] exclude-result-prefixesが機能しない
-
[解決済み] xsltで文字列を文字列に置き換える
-
[解決済み】googleプロトコルバッファ vs json vs XML【終了しました