Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NETCONF Java Toolkit を使用して RPC の返信を解析する

NETCONF サーバーに運用要求または構成要求を送信した後、サーバーは RPC 応答を返します。RPC の返信を解析して目的の情報を抽出するために、いくつかのアプローチを使用できます。

NETCONF Java ツールキットのコンテキスト内で XML 応答を解析する方法は 2 つあります。

  • オブジェクトを org.w3c.dom.Document 取得し、オブジェクトの標準 Java クラス ライブラリで利用可能なネイティブ解析メソッドを Document 使用します。

  • XML オブジェクトのfindValue(List list)クラスでnet.juniper.netconf.XML利用可能な と findNodes(List list) メソッドを使用します。

最初のアプローチでは、オブジェクトを getOwnerDocument() 返すために応答オブジェクトのメソッドを Document 呼び出します。

その後、結果の Document オブジェクトで標準 Java ライブラリでメソッドを使用できます。このメソッドは、標準の Java ライブラリー・メソッドに関して使用できる柔軟性とオプションに役立ちます。

2 つ目のアプローチではnet.juniper.netconf.XML、クラスに、 および findNodes(List list) メソッドが含まれておりfindValue(List list)、XML オブジェクトの解析に使用できます。インターフェイスの機能Listを使用したり、対応する例に示すようにオブジェクトを作成Arraysしたりするには、プログラムコードに"import java.util.*;"ステートメントを含める必要があります。

運用要求に対する次の RPC 応答を get-interface-information 調べること。

findValue() を使用したRPC返信の解析

メソッドを findValue() 使用して、階層の任意のレベルで指定された要素の値を決定できます。のRPC応答 get-interface-informationの例では、物理インターフェイスge-0/0/0の要素の値 <admin-status> を決定したいとします。RPC の返信の形式を認識している場合は、次のコードを使用してこの情報を抽出できます。

インターフェイス名は、特定の要素を識別するためにチルダ(~)文字を使用があることに注意してください。このコードを実行すると、"up" が標準出力に印刷されます。

findNodes()を使用したRPC返信の解析

メソッドを findNodes() 使用して、特定の階層の下のすべてのノードのリストをオブジェクトとして org.w3c.dom.Node 取得できます。以下のコードスニペットは、 階層の要素の下のすべての <physical-interface> ノードの <interface-information> リストを取得します。

ただし、特定のノードを抽出することもできます。次のコードは、ge-0/0/1 インターフェイスのみの階層を返します。

例: findNodes() を使用した RPC リプライの解析(詳細)

次の例では、このアプローチをさらに進め、子ノードを解析して、要素だけのコンテンツを抽出して印刷します <name> 。このサンプル コードは、RPC 応答を解析し、完全なプログラムを表していないプログラム部分に焦点を当てています。