ISXMLATTRIBUTE  
説明

関数パラメータが XML DOM (Document Object Model) 属性ノードであるかどうかを調べます。

 
戻り値

関数の引数が XML 属性ノードの場合は true、そうでない場合は false。

 
カテゴリ

決定関数、XML 関数

 
関数のシンタックス
IsXmlAttribute(value)
 
関連項目

IsXML、IsXmlDoc、IsXmlElem、IsXmlNode、IsXmlRoot、XmlGetNodeType、XmlValidate、『ColdFusion MX 開発ガイド』の第35章の「XML および WDDX の使用」

 
ヒストリ

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

 
パラメータ

 
使用方法

この関数は、パラメータが XML DOM 属性ノードであるかどうか、つまり ATTRIBUTE の値が XMLType のノードであるかどうかを調べます。XmlSearch 関数が返す値が XML 属性であるかどうかを確認する場合に役立ちます。

DOM および ColdFusion MX は、XML 属性を要素のプロパティとして処理します。DOM ノードとして直接示すことはありません。したがって、ColdFusion XML ドキュメントオブジェクト内の XmlAttributes エントリは、DOM 属性ノードを示さず、次のようなテストでは常に false が返されます。

IsXmlAttribute(myxmlelement.XMlAttributes);
IsXmlAttribute(myxmlelement.XMlAttributes.myattribute);

XmlSearch 関数は、属性を XML DOM 属性ノードとして返します。たとえば次の行は、xmlobject ドキュメントオブジェクト内の quantity 属性を含む属性ノードの配列を返します。

quantities = XmlSearch(xmlobject, '//@quantity');
 

次の例では、XML ドキュメントを作成して、そのパーツを取得します。次に、それらのパーツが属性ノードであるかどうかをテストします。

<!--- XML ドキュメントオブジェクトを作成 --->
<cfxml variable="xmlobject">
<order id="4323251">
   <customer firstname="Philip" lastname="Cramer" accountNum="21"/>
   <items>
      <item id="43">
         <quantity>1</quantity>
         <unitprice>15.95</unitprice>
      </item>
   </items>
</order>
</cfxml>

<!--- lastname、quantity の DOM 属性ノードをすべて含む配列を取得 
   (この例ではエントリは 1 つのみ) --->
<cfset lastnames = XmlSearch(xmlobject, '//@lastname')>

<!--- オブジェクトをテストして属性かどうかを確認 --->
<cfoutput>
<h3>これらは XML 属性ノードですか?</h3>
<!--- オーダー要素の ID 属性。 
       これは DOM 属性ノードではなく、単純な変数です。--->
node.xmlobject.order.XmlAttributes.id: 
   #IsXmlAttribute(xmlobject.order.XmlAttributes.id)#<br>
<!--- アイテム要素 --->
xmlobject.order.items:#IsXmlAttribute(xmlobject.order.items)#<br>
XmlSearch が返す lastnames[1]: 
#isXmlAttribute(lastnames[1])#<br>
</cfoutput>
VALUE  
XML 属性の名前です。