Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用 NETCONF Java 工具包解析 RPC 回复

向 NETCONF 服务器提交操作或配置请求后,服务器会回复 RPC。您可以使用几种方法来解析 RPC 回复,以便提取所需信息。

在 NETCONF Java 工具包上下文中解析 XML 回复的方法有两种:

  • org.w3c.dom.Document获取对象并使用对象标准 Java 类库中可用的本机解析Document方法。

  • findValue(List list)使用 XML findNodes(List list) 对象类net.juniper.netconf.XML中可用的 和 方法。

对于第一种方法,调用 getOwnerDocument() 回复对象上的方法以返回 Document 对象。

然后,可以在生成的对象上的标准 Java 库内使用 Document 方法。此方法对于标准 Java 库方法的灵活性和可用选项非常有用。

对于第二种方法,类net.juniper.netconf.XML包含 findValue(List list)findNodes(List list) 方法,可用于解析 XML 对象。您必须在程序代码中包含"导入 java.util.*"ListArrays语句,以使用接口功能或创建对象,如相应的示例所示。

研究以下 RPC 对操作请求 get-interface-information 的回复:

使用 findValue() 解析 RPC 回复

此方法可用于 findValue() 确定层次结构任何级别的给定元素的值。在 示例 RPC 回复 中 get-interface-information,假设您希望 <admin-status> 确定物理接口元素的值 ge-0/0/0。由于注意到 RPC 回复的格式,可以使用以下代码提取此信息:

请注意,接口名称使用一个 tilde (~) 字符来识别特定元素。执行此代码可打印"最多"到标准输出。

使用 findNodes() 解析 RPC 回复

您可以使用 该方法获取findNodes()给定层次结构下的所有节点列表作为org.w3c.dom.Node对象。以下代码片段获取层次结构中元素<physical-interface><interface-information>下的所有节点列表:

但是,您可能需要提取特定节点。以下代码仅返回 ge-0/0/1 接口的层次结构:

示例:使用 findNodes() 解析 RPC 回复(详细)

以下示例进一步采用此方法,并通过子节点进行解析,以仅为元素提取和打印 <name> 内容。此示例代码侧重于解析 RPC 回复的程序部分,不表示完整程序。