我正在编写一个PowerShell脚本,在HTML文件的head部分添加一个 meta标记。标记必须如下所示:。
下面的通用代码片段适用于所有属性,但名为name的属性除外:
$newMeta = $doc.createElement("meta")
$newMeta.attributename = "attribute content"
这是可行的:
$newMeta = $doc.createElement("meta")
$newMeta.content = "noindex, nofollow"
但这并不:
$newMeta = $doc.createElement("meta")
$newMeta.name = "robots"
name属性在输出中被忽略。
如何将名为name的属性添加到输出中?
2条答案
按热度按时间8hhllhi21#
假设
$doc
是一个XmlDocument
对象,这是PowerShell的XML适配器在每个xml节点对象上的Name
属性与您要添加到文档本身的name
属性之间存在冲突的情况。使用
SetAttribute()
方法明确设置属性值:7lrncoxx2#
我没有看到其他人,所以我会尝试自己回答这个问题。据我所知,在HTML元素上设置一个名为“name”的属性是不可能的,无论是用SetAttribute()还是用一个属性(object.attributename)。
我设法通过变通方案获得了相同的效果:我首先创建一个带有占位符名称的属性,然后用字符串“name”替换占位符名称。
我知道这不是一个优雅的解决方案,我对此感到有些羞愧,但它确实有效。也许下面的片段对其他人有帮助。