XSLT要素

XSLT(Extensible Stylesheet Language Transformations)は、文書に適用する変換を記述するための多くの要素を定義しています。この記事では、これらの要素の一部を紹介します。XSLTの概要については、メイン記事をご覧ください。

XSLTロジック要素

ノード説明/属性コンテナ/子供
xsl:テンプレートの適用当該ノード内に他の一致が存在する可能性があることを指定します。指定されていない場合、一致はすべて無視されます。select が指定されている場合は選択されたノードまたは属性型に適合する「一致」を指定するテンプレートのみが適用されます。つまり、xsl:apply-templates の select 属性で一致する要素は、同じ要素一致するテンプレートに対応します。modeが指定されている場合は、同じ「モード」を持ち、適切な「一致」を持つテンプレートのみが適用されます。任意の親。任意の数のxsl:sortおよびxsl:with-param の子を含めることができます。
<xsl:テンプレートを適用/>
xsl:選択複数の選択肢。属性はありません。任意の親。xsl :whenブロックと最大 1 つのxsl:otherwiseブロックが含まれます。
<xsl:選択></xsl:choose>
xsl:for-each一致するたびに繰り返すループを作成します。select一致基準を指定します。任意の親。任意の XML を含めることができます。
<xsl:for-each select= "input[@name=$name]" > </xsl:for-each>
xsl:ifYes または No 条件。testは、 if を入力するための基準を指定します。任意の親。任意の XML を含めることができます。
<xsl:if test= "$type='text' または $type='password'" > </xsl:if>
xsl:そうでない場合xsl:whenの条件がいずれも満たされない場合のデフォルトの選択肢xsl:choose。任意のXMLを含めることができます。
<xsl:そうでない場合></xsl:そうでない場合>
xsl:スタイルシート最上位要素。スタイルシート ドキュメント内で 1 回だけ出現します。version、使用されている XSLT バージョンを指定します。xmlns :xsl は、その標準のURLを指定します。最上位の要素。すべての XML が含まれます。
<xsl:スタイルシート></xsl:スタイルシート>
xsl:テンプレート処理テンプレートを指定します。match、テンプレートが使用されるタイミングを示します。name、xsl:call-template がこのテンプレートを呼び出すために使用できる名前をテンプレートに与えます。xsl:stylesheet。任意のXMLを含めることができます。
<xsl:templateマッチ = "//入力" > </xsl:テンプレート>
xsl:変数変数を宣言できます。name変数名です。これは後で で参照できます$name。select変数の値です。親はいるが、子供はいない。
<xsl:変数名= "type"選択= "@type" />  
xsl:いつYes または No の条件。testは、 if を入力するための基準を指定します。xsl:choose。任意のXMLを含めることができます。
<xsl:when test= "$type='radio'" > </xsl:when>

ロジック要素を使用した XSLT スタイルシートの例

<xsl:stylesheet > <xsl:template match= "//input" > <xsl:variable name= "type" select= "@type" /> <xsl:variable name= "name" select= "@name" /> <xsl:if test= "$type='text' または $type='password' または $type='radio' または $type='checkbox'" > <xsl:choose >            <xsl:when test= "$type='radio'" > <xsl:if test= "not(preceding-sibling::input[@type='radio'])" > <select name= "{@name}" > <xsl:for-each select= "../input[@name=$name]" > <option value= "{@value}" > <xsl:apply-templates /> </option> </xsl:for-each> </select> </xsl:if> </xsl:when>                <xsl:when test= "$type='text'" > <input name= "{@name}" type= "{@type}" > <xsl:apply-templates /> </input> </xsl:when>        <xsl:when test= "$type='password'" > <input name= "{@name}" type= "{@type}" > <xsl:apply-templates /> </input> </xsl:when>        </xsl:choose> </xsl:if> </xsl:template> </xsl:stylesheet>  

XSLTファイルI/O要素

ノード説明/属性コンテナ/子供
xsl:呼び出しテンプレート名前が指定されたテンプレートを呼び出します。namexsl:template内の名前と一致します任意の親。子はxsl:with-paramです。
<xsl:call-template name= "lib:make-elem" > 
xsl:インポート別の XSLT ファイルを取得します。hrefファイルの URI です。xsl:stylesheet。子要素はありません。
<xsl:import href= "..\Library\FuncLib.xslt" /> 
xsl:出力データがどのように返されるかを説明します。method、返されるデータの種類を指定します。omit -xml-declaration は、最初の xml タグを含めるかどうかを示します。encoding、データがどのように返されるかを指定します。xsl:stylesheet。子要素はありません。
<xsl:出力方法= "xml"省略xml宣言= "yes"エンコード= "UTF-8" />   
xsl:パラメータxsl:call-templateを使用してテンプレートに渡すことができるパラメータを指定しますxsl:template。子要素はありません。
<xsl:param name= "要素名" /> 
xsl:テキストタグの内容を出力します。親は誰でも。子供はいない。
<xsl:text >クレーム番号 クレームシーケンス番号</xsl:text>
xsl:値変数を出力します。select変数を指定します。親は誰でも。子供はいない。
<xsl:value-of選択 = "$s" /> 
xsl:パラメータ付きxsl:call-templateに渡されるパラメータを指定しますテンプレート内のxsl:paramと一致している必要があります。nameパラメータ名を指定します。selectパラメータ値を指定しますxsl:call-template。子要素はありません。
<xsl:with-param name= "要素名" select= "'hma:ClaimNumber'" />  

クライアント側 XSLT は、ソースXMLファイルのルート XML タグの直後に次のような行を追加することで、ブラウザーで実装できます。

<?xml-stylesheet type="text/xsl" href="family.xsl"?>

これについては、http://www.xml.com/pub/a/2000/10/25/msie/index.html のページで説明されています。

その他のXSLTセマンティクス

シンボル意味使用場所
|結合演算子。XPath 式でノードセットをグループ化するために使用されます。xsl:whenxsl:ifxsl:for-eachなどの要素の属性を選択します
&そして任意の条件または一致基準。たとえば、 xsl:if.testxsl:when.testxsl:template.selectxsl:for-each.selectなど。
<!--コメントを開始します。タグ内以外の任意の場所。
-->コメントを終了します。タグ内以外の任意の場所。
$変数名の開始。タグ内の任意の場所、たとえばxsl:value-of.selectxsl:variable.name
name()処理対象のタグの名前。一致条件に|s(パイプ記号)が含まれている場合に便利です。任意の条件または一致基準。たとえば、 xsl:if.testxsl:when.testxsl:template.selectxsl:for-each.selectなど。
@XML 内の属性。任意の条件または一致基準。たとえば、 xsl:if.testxsl:when.testxsl:template.selectxsl:for-each.selectなど。

[1]

XSLTで定義された関数

次の関数は、xsl:value-of.select や xsl:for-each.select など、多くの XSLT 属性で発生する可能性があります。

関数説明/構文
シーリングceiling関数は、数値引数の数値と等しいかそれより大きい最小の整数を返します。
天井3.57 
連結2 つ以上の文字列を連結します。
連結( $ fname , ' ' , $ lname )  
含む[2]最初の文字列に 2 番目の文字列が含まれている場合は true を返し、含まれていない場合は false を返します。
contains ( '検索する文字列' , '検索' ) 
カウントcount 関数は、ノードセット内のノードの数をカウントして返します。
数える要素
floor関数は、数値引数の数値と等しいかそれより小さい最大の整数を返します。
3.57 
正規化空間文字列の先頭と末尾の空白を削除します
スペースを正規化( $ fname )
位置位置関数は、xsl:for-eachまたはxsl:apply-templates要素ノードリストによって処理されている現在のノードの1から始まる[3]インデックスを返します。引数はありません。
位置()
ラウンドround 関数は、数値を最も近い整数に丸めます。
ラウンド3.57 
文字列関数は値引数を文字列に変換します。
()
文字列の長さstring-length関数は、文字列の文字数を返します。文字列引数はオプションです。省略された場合、デフォルトではコンテキストノードの文字列値が使用されます。
文字列の長さ( 'hello' )
部分文字列変数値内のセグメント。部分文字列は、入力変数、選択される最初の文字、および結果の文字列の長さの3つのパラメータを取ります。
部分文字列( $ dob , 4 , 2 )
部分文字列の後substring-after 関数は、文字列引数で指定された文字列のうち、部分文字列引数で指定された部分文字列の後にある部分を返します。
部分文字列の後( '1814年に私たちはちょっとした旅行に出かけました' '私たち' ) 
前の部分文字列substring-before 関数は、文字列引数で指定された文字列のうち、部分文字列引数で指定された部分文字列の前にある部分を返します。
部分文字列の前( '1814年に私たちはちょっとした旅行に出かけました' '私たち' ) 
sum 関数は、ノード セットまたは値のリスト内の数値セットの合計値を加算して返します。
合計( 1 , 3 , 7 , 12 )
翻訳する値引数の文字列を受け取り、文字列 1 引数内のすべての文字を文字列 2 引数の同じ位置にある置換文字に置き換え、変更された文字列を返します。
translate ( 'band' , 'abcd' , 'ABCD' ) = 'BAnD'    
  • W3C XSLT 1.0 勧告 - XSLT 1.0 の構文とセマンティクス全体を記述します
  • W3C XSLT 2.0勧告
  • XSLT要素リファレンス - W3Schools

参考文献

  1. ^ 「XSLTリファレンス」。
  2. ^ 「XSLT 1.0: 関数に含まれる」。
  3. ^ 「例16:1」。
Retrieved from "https://en.wikipedia.org/w/index.php?title=XSLT_elements&oldid=1066294673"