xml - 在 PowerShell 中添加同名的 XML 元素
问题描述
我有一个用于添加防火墙规则的模板,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<rule disabled="false" logged="false">
<name></name>
<action>allow</action>
<notes></notes>
<appliedToList>
<appliedTo>
<value></value>
</appliedTo>
</appliedToList>
<sectionId></sectionId>
<sources excluded="true">
<source>
<value></value>
</source>
</sources>
<destinations excluded="false">
<destination>
<value></value>
</destination>
</destinations>
<services>
<service>
<value></value>
</service>
</services>
</rule>
只要我们只需要一种服务、来源或目的地,它就可以正常工作。例如,如果有多个目的地,我希望能够在 PowerShell 中创建新的子节点。
<?xml version="1.0" encoding="UTF-8"?>
<rule disabled="false" logged="false">
<destinations excluded="false">
<destination>
<value></value>
</destination>
<destination>
<value></value>
</destination>
</destinations>
</rule>
我试着按照这里的帮助。
$newL3Rule = [System.Xml.XmlDocument](Get-Content C:\nsx-xml\new-layer3rule.xml)
$new = $newL3Rule.rule.destinations.destination.Clone()
$newL3Rule.DocumentElement.AppendChild($new)
但是新目的地出现在规则而不是目的地之下。有人可以指出我正确的方向吗?
解决方案
你非常接近,你只需要使用
$newL3Rule.DocumentElement.destinations.AppendChild($new)
结果:
<?xml version="1.0" encoding="UTF-8"?>
<rule disabled="false" logged="false">
<name></name>
<action>allow</action>
<notes></notes>
<appliedToList>
<appliedTo>
<value></value>
</appliedTo>
</appliedToList>
<sectionId></sectionId>
<sources excluded="true">
<source>
<value></value>
</source>
</sources>
<destinations excluded="false">
<destination>
<value></value>
</destination>
<destination>
<value></value>
</destination>
</destinations>
<services>
<service>
<value></value>
</service>
</services>
</rule>
解释:您所做的是将子项添加到 XML 的顶层。如果你想将 child 附加到destinations
你必须指定你想在那里添加它。
推荐阅读
- discord.js - discord.js 某些频道嵌入
- flutter - 我不断收到一条错误消息,提示 Flutter Error Unable to Load Asset
- geopandas - 在 OSMnx 中撤消投影
- webpack - webpack 中的 IgnorePlugin 有什么用
- python - 有没有办法摆脱python中“”中没有的所有其他字符?
- android - 使用 react-native-camera 打开相机时屏幕变黑
- sql - 从枢轴中的另一个 col 值过滤 varchar col
- ubuntu - Shellcode 编译错误
- asp.net-core - 在 Startup.cs 种子数据库期间添加 UserClaims
- jmeter - JMETER 中未生成 HTML 文件