次の例は、XPath クエリで軸を指定する方法を示しています。これらの例の XPath クエリは、SampleSchema1.xml に含まれるマッピング スキーマで指定されています。このサンプル スキーマの詳細については、「サンプル XPath クエリ」を参照してください。
例
A. コンテキスト ノードの子要素の取得
この XPath は、選択したコンテキスト ノードのすべての
/child::Employee
このクエリでは、child が軸で、Customer がノード テストです。 (Customer が
child はデフォルトの軸です。したがって、クエリは次のように記述できます。
/Employee
マッピング スキーマで XPath クエリをテストする
次のテンプレート (MyTemplate.xml) を作成し、テンプレートの仮想名に関連付けられたディレクトリに保存します。
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema2.xml"> /Employee </sql:xpath-query> </ROOT>
次の URL はテンプレートを実行します:
http://IISServer/VirtualRoot/template/MyTemplate.xml
XPath クエリは URL で直接指定できます:
http://IISServer/nwind/schema/SampleSchema1.xml/child::Customer?root=root
仮想名スキーマはスキーマ タイプです。スキーマ ファイルは、スキーマ タイプの仮想名に関連付けられたディレクトリに保存されます。 root パラメータは、結果の XML ドキュメントの最上位要素を指定します (root は任意の値です)。
以下は、テンプレート実行の部分的な結果セットです。
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <Employee EmployeeID="1" LastName="Davolio" FirstName="Nancy" Title="Sales RePResentative" /> <Employee EmployeeID="2" LastName="Fuller" FirstName="Andrew" Title="Vice President, Sales" /> ... </ROOT>
B. コンテキスト ノードの孫ノードを取得します。
この XPath は、選択されたコンテキスト ノードの c214b1127c801bd6a2a45c5b466f54b2 子要素のすべての 7e7d629a61e1c649d53a7e569305f73a 子要素をクエリします。 :
/child: :Customer/child::Order
このクエリでは、child が軸で、Customer と Order がノード テストです (Customer と Order が 1dd643d91c792abd0a34d1b312e2f207 ノードの場合、1dd643d91c792abd0a34d1b312e2f207 が存在するため、これらのノード テストは TRUE になります) ; ノードは軸の子メインノードです)。 c214b1127c801bd6a2a45c5b466f54b2 に一致するノードごとに、100fdf8091fa655ad847e46c0cb82106 に一致するノードが結果に追加されます。 7e7d629a61e1c649d53a7e569305f73a のみが結果セットで返されます。
child はデフォルトの軸です。したがって、このクエリは次のように指定できます:
/Customer/Order
マッピング スキーマで XPath クエリをテストする
次のテンプレート (MyTemplate.xml) を作成し、テンプレートの仮想名に関連付けられたディレクトリに保存します。
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> /Customer/Order </sql:xpath-query> </ROOT>
上記はXPathクエリで軸を指定する内容です(MSSQLマニュアルより転載) その他の関連内容はPHP中国語サイト(www.php.cn)にご注目ください!