【问题标题】:Adding attributes to XML nodes with PowerShell adds namespaces使用 PowerShell 向 XML 节点添加属性会添加命名空间
【发布时间】:2018-02-02 12:18:05
【问题描述】:

我正在尝试使用 PowerShell 向一些新创建的 XML 节点添加一些属性,但由于某种原因,这些属性看起来像这样:

<add d5p1:name="" d5p2:value="" xmlns:d5p2="noindex,nofollow" xmlns:d5p1="X-Robots-Tag" />

知道为什么要用命名空间来格式化这样的属性吗?我的代码很简单:

if ($node -ne $null) {
    $node.SetAttributeNode("name", "X-Robots-Tag")
    $node.SetAttributeNode("value", "noindex,nofollow")
}

【问题讨论】:

    标签: xml powershell


    【解决方案1】:

    如有疑问,请阅读documentationSetAttributeNode() 方法添加了一个没有值的命名空间属性。

    public virtual XmlAttribute SetAttributeNode(
        string localName,
        string namespaceURI
    )
    

    参数

    本地名称
    类型:System.String
    属性的本地名称。

    namespaceURI
    类型:System.String
    属性的命名空间 URI。

    [...]

    备注
    XmlAttribute 没有任何孩子。使用Value 为属性分配文本值或使用AppendChild(或类似方法)向属性添加子项。

    您正在寻找SetAttribute() 方法。

    if ($node -ne $null) {
        $node.SetAttribute("name", "X-Robots-Tag")
        $node.SetAttribute("value", "noindex,nofollow")
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 1970-01-01
      • 2013-09-21
      • 2014-06-10
      • 2016-05-05
      • 2018-09-16
      相关资源
      最近更新 更多