XmlParse

説明

XML テキストを XML ドキュメントオブジェクトに変換します。

戻り値

XML ドキュメントオブジェクト

カテゴリ

変換関数XML 関数

関数のシンタックス

XmlParse(xmlText [[, caseSensitive ], validator])

関連項目

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

ヒストリ

ColdFusion MX 7:

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

パラメータ

パラメータ 説明

xmlText

次のいずれかです。

  • XML テキストを含む文字列
  • XML ファイルの名前
  • XML ファイルの URL。http、https、ftp、file など、有効なプロトコル識別子です。

caseSensitive

  • Yes: ドキュメント要素と属性の大文字と小文字の区別を保持します。
  • No: デフォルトです。

validator

次のいずれかです。

  • DTD (ドキュメントタイプ定義) または XML スキーマファイルの名前
  • DTD またはスキーマファイルの URL。http、https、ftp、file など、有効なプロトコル識別子です。
  • DTD またはスキーマの文字列表記
  • 空の文字列。この場合、XML ファイルには、ドキュメントの検証に使用する DTD またはスキーマ識別子が埋め込まれている必要があります。

使用方法

パラメータで相対 URL または相対パス名を指定した場合、ColdFusion は現在の ColdFusion ページをパスルートとして含んでいるディレクトリ (URL の場合は論理ディレクトリ) を使用します。

大文字と小文字だけが異なる複数の識別子がそれぞれ別のコンポーネントを参照するかどうかは、caseSensitive パラメータ値によって決まります。例 :

XML オブジェクトで大文字と小文字が区別される場合、ドット表記法を使用して要素または属性の名前を参照することはできません。代わりに、連想配列 (括弧) 表記法による名前を使用するか、大文字と小文字を区別する名前を使わない参照を使用 (xmlChildren[1] など) します。次のコードで、最初の行は大文字と小文字を区別する XML オブジェクトに機能します。2 番めと 3 番めの行ではエラーが発生します。

MyDoc.xmlRoot.XmlAttributes["Version"] = "12b";
MyDoc.xmlRoot.XmlAttributes.Version = "12b";
MyDoc.MyRoot.XmlAttributes["Version"] = "12b";

オプションの validator パラメータは、ドキュメントを検証するために使用する DTD またはスキーマを指定します。パーサーで検証エラーが発生すると、ColdFusion はエラーを生成してドキュメントの解析を停止します。validator パラメータを指定して、XmlParse 関数でドキュメントを検証するようにする必要があります。validator パラメータを指定しない場合に XML ファイルで DTD またはスキーマを指定しても、ColdFusion はその DTD またはスキーマを無視します。validator パラメータを指定する場合は、caseSensitive パラメータも指定する必要があります。

validator パラメータを指定しない場合は、xmlText パラメータでウェルフォームドの XML フラグメントを指定することができます。ドキュメント全体を指定する必要はありません。

メモ: XML ドキュメントオブジェクトを文字列に変換するには、ToString 関数を使用してください。

次の例には 3 つの部分があります。つまり、XML ファイル、DTD ファイル、および検証のために XML ファイルを解析して DTD ファイルを使用する CFML ページです。CFML ファイルは、返された XML ドキュメントオブジェクトを表示します。無効な XML の結果を表示するには、bmenuD.xml を修正します。

メモ: 次の例で使用する DTD は、XmlValidate の例で使用するスキーマと同じ XML 構造体を表します。

"custorder.xml" ファイルは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE order SYSTEM "C:¥CFusionMX7¥wwwroot¥examples¥custorder.dtd">
<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>

"custorder.dtd" ファイルは次のとおりです。

<!ELEMENT order (customer, items)>
<!ATTLIST order
   id CDATA #REQUIRED>
<!ELEMENT customer EMPTY>
<!ATTLIST customer
   firstname CDATA #REQUIRED
   lastname CDATA #REQUIRED
   accountNum CDATA #REQUIRED>
<!ELEMENT items (item+)>
<!ELEMENT item (name, quantity, unitprice)>
<!ATTLIST item 
   id CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT quantity (#PCDATA)>
<!ELEMENT unitprice (#PCDATA)>

CFML ファイルは次のとおりです。XML ファイルのファイル名および DTD の URL を使用します。 XML および URL のパスは絶対パスでなければなりません。

<cfset
myDoc=XMLParse("C:¥CFusionMX7¥wwwroot¥examples¥custorder.xml",
false, "http://localhost:8500/examples/custorder.dtd")>
Dump of myDoc XML document object<br>
<cfdump var="#myDoc#">

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

バージョン7