XML テキストを XML ドキュメントオブジェクトに変換します。
XML ドキュメントオブジェクト
XmlParse(xmlText[[,caseSensitive],validator])
cfxml、IsXML、ToString、XmlFormat、XmlNew、XmlSearch、XmlTransform、XmlValidate、『ColdFusion MX 開発ガイド』のXML および WDDX の使用
ColdFusion MX 7:
validator パラメータが追加されました。
xmlText パラメータでファイル名と URL を使用できるようになりました。
ColdFusion MX: この関数が追加されました。
| パラメータ | 説明 |
|---|---|
|
xmlText |
次のいずれかです。
|
|
caseSensitive |
|
|
validator |
次のいずれかです。
|
パラメータで相対 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