使用 Junos XML 协议删除配置数据中的元素
在与运行 Junos OS 的设备进行 Junos XML 协议会话时,要从候选配置或开放配置数据库中删除配置元素(层次结构或配置对象),客户端应用程序会发出 使用 Junos XML 协议创建、修改或删除配置元素中描述的基本标记元素。使用 Junos XML 标记元素表示要删除的元素时,客户端应用程序将属性包括在 delete="delete"
每个元素的开始标记中。使用格式化的 ASCII 文本时,客户端应用程序将先于要删除的每个元素,并用 delete:
运算符删除。使用配置模式命令删除元素时,客户端应用程序将使用 delete
命令并指定元素的路径。使用 JSON 数据删除元素时,客户端应用程序将 "operation" : "delete"
属性包括在该元素的属性列表中。属性或运算符的放置取决于要删除的元素的类型,如下节所述:
您可以从 Junos OS 16.1 版开始加载使用 JavaScript 对象符号 (JSON) 格式的配置数据。
删除层级或容器对象
要删除层次结构级别及其所有子级(或无子级但无标识符的容器对象),客户端应用程序会为其父级别添加基本标记元素或配置语句,如 使用 Junos XML 协议创建、修改或删除配置元素中所述。
使用 Junos XML 标记元素时,应用程序在 delete="delete"
空标记中包含表示级别或容器对象的属性:
<configuration> <!-- opening tag for each parent level --> <level-or-object delete="delete"/> <!-- closing tag for each parent level --> </configuration>
使用格式化的 ASCII 文本时,应用程序将 delete:
语句置于要移除的级别之上,后跟分号(即使在现有配置中,后面还有将子语句括起来的花括号):
<configuration-text> /* statements for parent levels */ delete: object-or-level; /* closing braces for parent levels */ </configuration-text>
使用配置模式命令时,应用程序会 delete
指定要移除的层级或对象的命令和语句路径。
<configuration-set> delete statement-path-to-level-or-object </configuration-set>
使用 JSON 配置数据删除层次结构级别或容器对象时,应用程序在层次结构或容器对象的属性列表中包括 "operation" : "delete"
属性:
<configuration-json> { "configuration" : { /* JSON objects for parent levels */ "object-or-level" : { "@" : { "operation" : "delete" } } /* closing braces for parent levels */ } } </configuration-json>
以下示例说明如何使用 Junos XML 标记元素从候选配置中移除 [edit protocols ospf]
层次结构级别:

以下示例说明如何使用以 JSON 格式的配置数据从候选配置中移除 [edit protocols ospf]
层次结构级别:
<rpc> <load-configuration format="json"> <configuration-json> { "configuration" : { "protocols" : { "ospf" : { "@" : { "operation" : "delete" } } } } } </configuration-json> </load-configuration> </rpc>
删除具有标识符的配置对象
要删除具有标识符的配置对象,客户端应用程序会为其父级别添加基本标记元素或配置语句,如 使用 Junos XML 协议创建、修改或删除配置元素中所述。
使用 Junos XML 标记元素时,应用程序将 delete="delete"
属性包括在对象的开始标记中。在对象的容器标记元素中,它只包含标识符标记元素,而不是表示该对象任何其他特征的标记元素。在以下内容中,标识符标记元素称为 <name>
:
<configuration> <!-- opening tag for each parent of the object --> <object delete="delete"> <name>identifier</name> </object> <!-- closing tag for each parent of the object --> </configuration>
属性 delete
显示在打开的容器标记中,而不是在标识符标记元素中。标识符标记元素的存在会导致删除指定对象,而不是移除由容器标记元素表示的整个层次结构级别。
使用格式化的 ASCII 文本时,应用程序将 delete:
语句置于对象及其标识符之上:
<configuration-text> /* statements for parent levels of the object */ delete: object identifier; /* closing braces for parent levels of the object */ </configuration-text>
使用配置模式命令时,应用程序会 delete
指定命令、对象的语句路径以及对象及其标识符。
<configuration-set> delete statement-path-to-object object identifier </configuration-set>
使用 JSON 配置数据时,应用程序将 "operation" : "delete"
属性包括在对象的属性列表中。在容器对象中,它只将代表标识符的名称/值对括起来。在以下示例中,指定元素标识符的 JSON 成员的字段名为“name”:
<configuration-json> { "configuration" : { /* JSON objects for parent levels of the object */ "object" : [ { "@" : { "operation" : "delete" }, "name" : "identifier" } ] /* closing braces for parent levels of the object */ } } </configuration-json>
以下示例使用 Junos XML 标记元素从候选配置中的[edit system login user]
层次结构级别中移除用户对象barbara
。

以下示例使用 JSON 格式的配置数据从候选配置中的[edit system login user]
层次结构级别中移除用户对象barbara
。
<rpc> <load-configuration format="json"> <configuration-json> { "configuration" : { "system" : { "login" : { "user" : [ { "@" : { "operation" : "delete" }, "name" : "barbara" } ] } } } } </configuration-json> </load-configuration> </rpc>
从配置对象中删除单值或固定形式选项
要从配置对象中删除固定形式选项或只包含一个值的选项,客户端应用程序会为其父级别添加基本标记元素或配置语句,如 使用 Junos XML 协议创建、修改或删除配置元素中所述。(有关删除可包含多个值的选项的信息,请参阅 从配置对象的多值选项中删除值。)
使用 Junos XML 标记元素时,应用程序在每个选项的 delete="delete"
空标记中都包含属性。它不包括要保留在配置中的子项的标记元素。在以下内容中,该对象的标识符标记元素称为 <name>
:
<configuration> <!-- opening tag for each parent of the object --> <object> <name>identifier</name> <!-- if object has an identifier --> <option1 delete="delete"/> <option2 delete="delete"/> <!-- tag elements for other options to delete --> </object> <!-- closing tag for each parent of the object --> </configuration>
使用格式化的 ASCII 文本时,应用程序将 delete:
语句置于每个 选项之上:
<configuration-text> /* statements for parent levels of the object */ object identifier; delete: option1; delete: option2; /* closing braces for parent levels of the object */ </configuration-text>
使用配置模式命令时,应用程序会 delete
指定命令、选项的语句路径和要删除的选项。您可以指定 option 语句的完整路径,或导航至对象的层次结构级别,并从该位置删除 option 语句。使用单独命令删除每个选项。
<configuration-set> delete statement-path-to-object object identifier option1 delete statement-path-to-object object identifier option2 </configuration-set> <configuration-set> edit statement-path-to-object object identifier delete option1 delete option2 </configuration-set>
使用 JSON 配置数据删除选项时,应用程序将属性包括在 "operation" : "delete"
该选项的属性列表中。要删除层级或容器对象的选项,请指定要该级别删除的选项。
<configuration-json> { "configuration" : { /* JSON objects for parent levels */ "level-or-object" : { "@option1" : { "operation" : "delete" }, "@option2" : { "operation" : "delete" } } /* closing braces for parent levels */ } } </configuration-json>
要删除具有标识符的对象的选项,请先包含该标识符,然后指定要删除的选项。在以下示例中,指定元素标识符的 JSON 成员的字段名为“name”:
<configuration-json> { "configuration" : { /* JSON objects for parent levels of the object */ "object" : [ { "name" : "identifier", "@option1" : { "operation" : "delete" }, "@option2" : { "operation" : "delete" } } ] /* closing braces for parent levels of the object */ } } </configuration-json>
以下示例说明如何使用 Junos XML 标记元素在[edit forwarding-options sampling]
层次结构级别中移除固定格式disable
选项。

从配置对象的多值选项中删除值
正如 将配置语句映射到 Junos XML 标记元素中所述,某些 Junos OS 配置对象是具有多个值的叶语句。在格式化的 ASCII CLI 表示中,值括在对象名称后的方括号中:
object [value1 value2 value3 ...];
Junos XML 表示不会为对象使用父标记,而是为每个值使用对象标记元素的单独实例。在以下内容中,标识符标记元素称为 <name>
:
<parent-object> <name>identifier</name> <object>value1</object> <object>value2</object> <object>value3</object> </parent-object>
要为此类对象移除一个或多个值,客户端应用程序应包括其父级别的基本标记元素或配置语句,如 使用 Junos XML 协议创建、修改或删除配置元素中所述。使用 Junos XML 标记元素时,应用程序 delete="delete"
在每个值开头的标记中包含属性。它不包括表示要保留的值的标记元素。在以下内容中,父对象的标识符标记元素称为 <name>
:
<configuration> <!-- opening tag for each parent of the parent object --> <parent-object> <name>identifier</name> <object delete="delete">value1</object> <object delete="delete">value2</object> </parent-object> <!-- closing tag for each parent of the parent object --> </configuration>
使用格式化的 ASCII 文本时,应用程序会为每个值重复父语句,并将语句 delete:
置于每个配对语句和值之上:
<configuration-text> /* statements for parent levels of the parent object */ parent-object identifier; delete: object value1; delete: object value2; /* closing braces for parent levels of the parent object */ </configuration-text>
使用配置模式命令时,应用程序会 delete
指定命令、每个值的语句路径以及要移除的值。您可以指定值的完整路径,或导航至对象的层次结构级别,并从该位置删除值。使用单独命令删除每个值。
<configuration-set> delete statement-path-to-parent-object parent-object identifier object value1 delete statement-path-to-parent-object parent-object identifier object value2 </configuration-set> <configuration-set> edit statement-path-to-parent-object parent-object identifier object delete value1 delete value2 </configuration-set>
具有多值选项的对象采用 JSON 表示形式为名称/值对,其中字段名称为对象名称,表示选项的值为字符串阵列。Junos OS 不支持使用 JSON 从具有多值选项的对象中删除单个值。要更新选项列表,必须删除现有对象,然后使用所需的值集配置新对象。
以下示例说明如何使用 Junos XML 标记元素删除授予登录类的 user-accounts
两个权限。
