XmlTransform

説明

XSLT (Extensible Stylesheet Language Transformation) を XML に適用します。XML は、文字列形式ドキュメントの場合と XML ドキュメントオブジェクトの場合があります。

戻り値

XSLT を XML に適用した結果を含む文字列

カテゴリ

変換関数XML 関数

関数のシンタックス

XmlTransform(xml, xsl[, parameters])

関連項目

cfxmlXmlFormatXmlNewXmlParseXmlSearchXmlValidate、『ColdFusion MX 開発ガイド』のXML および WDDX の使用

ヒストリ

ColdFusion MX 7: parameters パラメータが追加され、XSL のファイルを使用できるようになりました。

ColdFusion MX: この関数が追加されました。

パラメータ

パラメータ 説明

xml

文字列形式または XML ドキュメントまたは XML ドキュメントオブジェクトです。

xsl

適用する XSLT 変換であり、次のいずれかに相当します。

次のいずれかです。

  • XSL テキストを含む文字列
  • XSTLT ファイルの名前。現在の CFML ページを含むディレクトリで始まる相対パスです。
  • XSLT ファイルの URL。http、https、ftp、ファイルなど、有効なプロトコル識別子です。現在の CFML ページを含むディレクトリで始まる相対パスです。

パラメータ

ドキュメントの変換に使用する XSL テンプレートパラメータの名前/値のペアを含む構造体です。xslString パラメータで定義される XSL 変換では、XML を処理するときにこれらのパラメータ値を使用します。

使用方法

XSLT では、Extensible Stylesheet Language (XSL) スタイルシートを適用することにより、XML ドキュメントを別の形式や表現に変換します。XSLT シンタックスを含む XSL は、W3C (World Wide Web Consortium) によって仕様が定められています。XSL および XSLT の詳細については、W3C の Web サイト www.w3.org/Style/XSL/ を参照してください。

インクルードステートメントが相対パスと共に XSLT コードに含まれている場合、ColdFusion は XSLT ファイルの場所に相対してパスを解決します。XSL 文字列の場合は、現在の ColdFusion ページの場所に相対してパスを解決します。

次の例では、顧客注文を示す XML ドキュメントを、顧客名および注文品と数量の表を含む HTML ドキュメントに変換します。

顧客注文を示す "custorder.xml" ファイルには、次の行があります。

<?xml version="1.0" encoding="UTF-8"?>
<order id="4323251">
   <customer firstname="Philip" lastname="Cramer" accountNum="21"/>
   <items>
      <item id="43">
         <name>高級大工用ハンマー</name>
         <quantity>1</quantity>
         <unitprice>15.95</unitprice>
      </item>
      <item id="54">
         <name>36 インチのプラスチック製熊手</name>
         <quantity>2</quantity>
         <unitprice>6.95</unitprice>
      </item>
      <item id="68">
         <name>標準の塗料用シンナー</name>
         <quantity>3</quantity>
         <unitprice>8.95</unitprice>
      </item>
   </items>
</order>

XML を HTML に変換して、顧客名および発注された商品と数量を表示する XSLT ファイル "custorder.xsd" には、次の行があります。

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN" />
   <xsl:template match="/">
      <html>
         <body>
            <table border="2" bgcolor="yellow">
               <tr>
                  <th>名前</th>
                  <th>価格</th>
               </tr>
               <xsl:for-each select="breakfast_menu/food">
                  <tr>
                     <td>
                        <xsl:value-of select="name"/>
                     </td>
                     <td>
                        <xsl:value-of select="price"/>
                     </td>
                  </tr>
               </xsl:for-each>
            </table>
         </body>
      </html>
   </xsl:template>
</xsl:stylesheet>

この CFML ファイルには次の行が含まれています。

<cffile action="read" file="C:¥CFusionMX7¥wwwroot¥examples¥custorder.xsl" variable="xmltrans">
<cfset xmldoc = XmlParse("C:¥CFusionMX7¥wwwroot¥examples¥custorder.xml")>
<cfoutput>#XmlTransform(xmldoc, xmltrans)#</cfoutput>

ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX* | ColdFusion 5* | フォーラム* | デベロッパーセンター | サポート情報 | バグ報告

バージョン7