【发布时间】:2014-01-17 23:28:43
【问题描述】:
我编写了一个 PowerShell 脚本,它可以查看 XML 并取消某些项目。
我这样做的方法是删除评论并创建新的 XmlElement 对象来代替它。
我的问题是当我将文件保存在现有文件上时,XmlDocument 在我的根元素 xmlns="" 上添加了一个额外的属性。
我在保存之前使用调试器查看了XmlDocument 对象,我的新元素OuterXml 具有以下结构:
<register type="IComStack" mapTo="ComStackEth">
<lifetime type="singleton" />
<constructor>
<param name="host" type="System.Net.IPAddress">
<value value="127.0.0.1" typeConverter="IPAddressTypeConverter" />
</param>
</constructor>
</register>
保存后我查看文件,我的元素如下所示:
<register type="IComStack" mapTo="ComStackEth" xmlns="">
<lifetime type="singleton" />
<constructor>
<param name="host" type="System.Net.IPAddress">
<value value="127.0.0.1" typeConverter="IPAddressTypeConverter" />
</param>
</constructor>
</register>
然后我回到调试器并再次查看我的元素,我以正确的格式看到它,即没有 xmlns 属性。
我使用 $config.Save($configPath) 顶部保存我的 xml 并使用以下方式加载它:
$config= new-object System.Xml.XmlDocument
$config.Load($configPath)
有谁知道如何防止XmlDocument.Save 添加命名空间属性?
【问题讨论】:
标签: xml powershell