我尝试使用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")
}
答案 0 :(得分:1)
如有疑问,请阅读documentation。 SetAttributeNode()
方法添加没有值的命名空间属性。
public virtual XmlAttribute SetAttributeNode( string localName, string namespaceURI )
参数
的localName
类型: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")
}