我正在尝试为此xml创建一个子XML元素:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我使用这个PowerShell脚本:
[xml] $doc = Get-Content($filePath)
$child = $doc.CreateElement("newElement")
$doc.configuration.AppendChild($child)
Run Code Online (Sandbox Code Playgroud)
我有一个错误: 方法调用失败,因为[System.String]不包含名为'AppendChild'的方法.
Tom*_*lak 63
如果使用点表示法来导航XML文件(例如$doc.configuration
),Powershell会尝试巧妙地返回它返回的内容.
String
.XmlElement
.Object[]
,其中每个单独的数组元素再次受这些规则约束,例如,它将是a String
或XmlElement
取决于其内容.$null
.在您的情况下,它很容易,因为您想要将节点附加到文档元素:
$doc = New-Object System.Xml.XmlDocument
$doc.Load($filePath)
$child = $doc.CreateElement("newElement")
$doc.DocumentElement.AppendChild($child)
Run Code Online (Sandbox Code Playgroud)
但您可以使用$doc.SelectNodes()
或$doc.SelectSingleNode()
浏览XML文档并始终返回节点/节点列表.
人们可以争论这种行为的敏感性,但实际上它使消费(结构良好的)XML非常直接 - 例如从配置文件或API响应中读取值等任务.这就是这种简单语法的目的.
它不是创建 XML 的好工具,这是一项更复杂的任务.从一开始就使用DOM API方法是更好的方法.
归档时间: |
|
查看次数: |
71886 次 |
最近记录: |