Groovy-xml
Groovy-XML
XMLは、オペレーティングシステムや開発言語に関係なく、プログラマが他のアプリケーションで読み取れるアプリケーションを開発できる、移植可能なオープンソース言語です。 これは、アプリケーション間でデータを交換するために使用される最も一般的な言語の1つです。
XMLとは何ですか?
拡張マークアップ言語XMLは、HTMLやSGMLによく似たマークアップ言語です。 これは、World Wide Web Consortiumによって推奨されており、オープンスタンダードとして利用できます。 XMLは、SQLベースのバックボーンを必要とせずに、少量から中量のデータを追跡するのに非常に役立ちます。
GroovyでのXMLサポート
Groovy言語は、XML言語の豊富なサポートも提供します。 使用される2つの最も基本的なXMLクラスは-
- XML Markup Builder -Groovyは、さまざまなツリー構造のオブジェクト表現を作成するためにサブクラス化できるツリーベースのマークアップジェネレーターBuilderSupportをサポートしています。 通常、これらのビルダーは、XMLマークアップ、HTMLマークアップを表すために使用されます。 Groovyのマークアップジェネレーターは、疑似メソッドの呼び出しをキャッチし、それらをツリー構造の要素またはノードに変換します。 これらの擬似メソッドのパラメーターは、ノードの属性として扱われます。 メソッド呼び出しの一部としてのクロージャーは、結果のツリーノードのネストされたサブコンテンツと見なされます。
- XML Parser -Groovy XmlParserクラスは、XMLドキュメントをノードインスタンスのツリーに解析するための単純なモデルを採用しています。 各ノードには、XML要素の名前、要素の属性、および任意の子ノードへの参照があります。 このモデルは、ほとんどの単純なXML処理に十分です。
すべてのXMLコード例について、次の単純なXMLファイルmovies.xmlを使用して、XMLファイルを作成し、その後ファイルを読み取ります。
XMLマークアップビルダー
構文
MarkupBuilderは、XMLドキュメント全体を構築するために使用されます。 XMLドキュメントは、最初にXMLドキュメントクラスのオブジェクトを作成することで作成されます。 オブジェクトを作成したら、擬似メソッドを呼び出してXMLドキュメントのさまざまな要素を作成できます。
1つのブロック、つまり上記のXMLドキュメントから1つのムービー要素を作成する方法の例を見てみましょう-
上記の例では、次のことに注意する必要があります-
- * mB.collection()*-これは、<collection> </collection>のヘッドXMLタグを作成するマークアップジェネレーターです。
- * movie(title: 'Enemy Behind')*-これらの擬似メソッドは、値を持つタグを作成するこのメソッドで子タグを作成します。 titleと呼ばれる値を指定することにより、これは実際に要素の属性を作成する必要があることを示します。
- XMLドキュメントの残りの要素を作成するために、クロージャーが擬似メソッドに提供されます。
- 生成されたXMLが標準出力ストリームに発行されるように、クラスMarkupBuilderのデフォルトコンストラクターが初期化されます
上記のプログラムを実行すると、次の結果が得られます-
XMLドキュメント全体を作成するには、次のことを行う必要があります。
- 要素のさまざまな値を保存するには、マップエントリを作成する必要があります。
- マップの各要素に対して、各要素に値を割り当てています。
上記のプログラムを実行すると、次の結果が得られます-
XML解析
Groovy XmlParserクラスは、XMLドキュメントをノードインスタンスのツリーに解析するための単純なモデルを採用しています。 各ノードには、XML要素の名前、要素の属性、および任意の子ノードへの参照があります。 このモデルは、ほとんどの単純なXML処理に十分です。
構文
次のコードは、XMLパーサーを使用してXMLドキュメントを読み取る方法の例を示しています。
Movies.xmlという同じドキュメントがあり、XMLドキュメントを解析して適切な出力をユーザーに表示したいとします。 次のコードは、XMLドキュメントのコンテンツ全体を走査し、ユーザーに適切な応答を表示する方法のスニペットです。
上記のプログラムを実行すると、次の結果が得られます-
上記のコードについて注意すべき重要なこと。
- クラスXmlParserのオブジェクトは、XMLドキュメントの解析に使用できるように形成されています。
- パーサーには、XMLファイルの場所が与えられます。
- 各ムービー要素について、クロージャーを使用して各子ノードを参照し、関連情報を表示しています。
movie要素自体については、@記号を使用して、movie要素に付加されたtitle属性を表示しています。