作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个如下所示的 xml 文件(CSCFG 文件)
XML 文件:
<Role name="Role1">
<Instances count="2" />
<ConfigurationSettings>
<Setting name="Key1" value="123456" />
<Setting name="Key2" value="1234567890" />
<Setting name="Key3" value="true" />
</ConfigurationSettings>
<Certificates>
</Certificates>
</Role>
我需要在证书节点内添加多个证书元素。
成为 XML:
<Role name="Role1">
<Instances count="2" />
<ConfigurationSettings>
<Setting name="Key1" value="123456" />
<Setting name="Key2" value="1234567890" />
<Setting name="Key3" value="true" />
</ConfigurationSettings>
<Certificates>
<Certificate name="certificate1" thumbprint="12345678" />
<Certificate name="certificate2" thumbprint="01234567" />
<Certificate name="certificate3" thumbprint="09876543" />
</Certificates>
</Role>
我正在尝试使用下面的代码来做到这一点
$xmlDoc = [System.Xml.XmlDocument](Get-Content $configFile);
$xmlDoc.Role.Certificates.AppendChild($xmlDoc.CreateElement("Certificate"));
$newXmlCertificate.SetAttribute(“name”,$certName);
$newXmlCertificate.SetAttribute(“thumbprint”,$CertThumbprint);
$xmlDoc.save($configFile)
这是执行此操作时遇到的异常:方法调用失败,因为 [System.String] 不包含名为“AppendChild”的方法。
请帮帮我。
最佳答案
这是因为 Certificates
属性返回一个字符串:
25> $xmlDoc.Role.Certificates.GetType().FullName
System.String
由于该元素是没有属性的叶元素,因此 PowerShell 将该元素的表示形式简化为包含该元素内容的字符串属性。您可以通过像这样解决问题来获得您想要的东西:
26> [xml]$xmlDoc = @'
>>> <Role name="Role1">
>>> <Instances count="2" />
>>> <ConfigurationSettings>
>>> <Setting name="Key1" value="123456" />
>>> <Setting name="Key2" value="1234567890" />
>>> <Setting name="Key3" value="true" />
>>> </ConfigurationSettings>
>>> <Certificates>
>>> </Certificates>
>>> </Role>
>>> '@
27> $certElem = $xmlDoc.CreateElement('Certificate')
28> $certElem.SetAttribute('name','certificate1')
29> $certElem.SetAttribute('thumbprint','12345678')
30> $xmlDoc.SelectSingleNode('/Role/Certificates').AppendChild($certElem)
31. $xmlDoc.Save($configFile)
关于xml - 如何在 PowerShell 中将元素添加到空 XML (CSCFG) 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29460650/
我是一名优秀的程序员,十分优秀!