このサイトをビューするために JavaScript を有効化してください。

Altova XMLSpy 2021 Professional Edition

JSON のための XQuery 3.1 式

JSON データ構造は通常オブジェクトと配列を使用するため、 XQuery 3.1 lookup operator ? が (基本的に XQuery パースペクティブからマップする)  JSON オブジェクトと JSON 配列内のノードを検索するために使用されます。ノードをロケートするこの方法は XML ドキュメント内でノードをロケートするためにパス式が作成される方法とは異なります。これらの中では、スラッシュ演算子 / がパス式内でステップを接続するために使用されています (例: items/*)。JSON のための式 XQuery 内では、スラッシュ演算子はノードをロケートするために使用されません。

 

JSON のための XQuery 式のサンプル

 

?items?*

意味: 子ノード items をルックアップし、自信の子ノード全てをルックアップします。items はコンテキストノードの子ノードであることが期待されることに注意してください。

 

?Artists?1?Albums?2?Name

意味: 子ノード Artists をルックアップし、最初の子ノードをルックアップします。そのノードの内部で子ノード Albums をルックアップし、2番目の子ノードをルックアップします。2番目の Name ノードが返されます。

 

?Tracks?*[contains(?Writer, 'Brian')]

意味: 子ノード Tracks をルックアップし、自信のすべての子をルックアップします。子をルックアップ中に、各 Writer 子ノードの子をルックアップし、文字列 'Brian' を含むものを選択します。この式内には3つのルックアップ演算子が存在します。ノードセットがルックアップされる個所でそれぞれが新規ステップ内で使用されています。

 

?Artists?*[?Name="Queen"]?Albums?*?Name

意味: ルートオブジェクト内で lookup 子ノード Artists  をルックアップし、"Queen" の値を持つ Name ノードを持つすべての子をルックアップします。コレアのノード内で、全ての子 Albums ノードをルックアップし、その子もルックアップします。これらの子内で、対応する Name ノードをルックアップ (して返) します。下のスクリーンショットでは、この式は XPath/XQuery ウィンドウ 内でターゲット JSON ドキュメントの JSON グリッドビュー 表示と共に表示されています。

 

inc-XQueryExpForJSON

 

(C) 2015-2021 Altova GmbH