【问题标题】:Powershell: Add node to XML rootPowershell:将节点添加到 XML 根
【发布时间】:2017-04-25 21:24:06
【问题描述】:

我有这个 XML 文件:

<shows>
    <breaking.bad />
    <stranger.things />
</shows>

我想使用 powershell 对其进行修改,使其变为:

<shows>
    <breaking.bad />
    <stranger.things />
</shows>
<movies>
</movies>

我试过了,还是不行:

$doc = [xml](get-content "c:\list.xml")
$movies = $doc.createelement("movies")
$doc.appendchild($movies)

有一个错误说: 使用“1”参数调用“AppendChild”的异常:“这个文档已经有一个‘DocumentElement’节点。” 在行:3 字符:1 + $doc.appendchild($movies)

【问题讨论】:

  • 请提供准确的错误信息,并描述您的代码是如何不工作的。
  • 编辑错误
  • Xml 文件只能有一个根节点

标签: xml powershell


【解决方案1】:

如果要添加另一个顶级元素,则需要将其添加到容器本身。

为了完成这项工作,我添加了一个顶级 Document 节点,然后将 Shows 设为其子节点,就像这样。

[xml]$x = "
<document>
   <shows>
    <breaking.bad />
    <stranger.things />
  </shows>
</document>"

然后,我像您一样使用CreateElement 方法定义了一个新元素。最后,我将它添加到文档中。

$newElement = $x.CreateElement("movies")
$x.document.AppendChild($newElement)

还有输出:

$x.OuterXml
<document><shows><breaking.bad /><stranger.things /></shows><movies /></document>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-25
    • 2021-04-22
    • 2016-07-08
    • 1970-01-01
    • 2021-12-28
    • 2012-09-25
    • 1970-01-01
    相关资源
    最近更新 更多