【问题标题】:How to add a node to a System.Xml.XmlLinkedNode if it has no CreateElement() method defined?如果没有定义 CreateElement() 方法,如何将节点添加到 System.Xml.XmlLinkedNode?
【发布时间】:2018-10-03 19:51:02
【问题描述】:

我必须向 XML 文档添加一个新节点,而 Powershell 不允许我在我希望放置节点的位置使用 CreateElement() 方法。

我首先像这样获取 XML 文件的内容:

[XML]$val = Get-Content "path_to_XML_file"

然后使用$val.configuration.'system.webserver' 导航到我需要放置新元素的节点。

$val.configuration.'system.webserver'.GetType() 给我System.Xml.XmlLinkedNode

当我使用$val.configuration.'system.webserver'|gm 时,它只会给我以下选择:

ToString AppendChild Clone CloneNode CreateNavigator Equals GetAttribute GetAttributeNode GetElementsByTagName GetEnumerator GetHashCode GetNamespaceOfPrefix GetPrefixOfNamespace GetType HasAttribute InsertAfter InsertBefore Normalize PrependChild RemoveAll RemoveAllAttributes RemoveAttribute RemoveAttributeAt RemoveAttributeNode RemoveChild ReplaceChild SelectNodes SelectSingleNode SetAttribute SetAttributeNode Supports WriteContentTo WriteTo

由于节点是新节点,尝试使用AppendChild()没有效果。

还有其他方法可以创建节点吗?

谢谢。

【问题讨论】:

    标签: xml powershell powershell-3.0


    【解决方案1】:

    我意识到 $val 变量具有 CreateElement() 方法。我只需要从那里创建元素并将其附加到我想要放置新项目的节点。

    $DCBC = $Web.CreateElement('UrlCompression')
    $DCBC.setAttribute('DynamicCompressionBeforeCache','false')
    $Web.configuration.'system.webServer'.AppendChild($DCBC)
    

    【讨论】:

      猜你喜欢
      • 2020-01-30
      • 2023-02-09
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 2017-06-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多