为什么可以';修改一个锚点';IHTMLDocument2中的姓名?
我正在编写一个脚本,该脚本读取本地HTML文件,修改DOM树,然后保存。使用为什么可以';修改一个锚点';IHTMLDocument2中的姓名?,html,powershell,dom,com,ihtmldocument2,Html,Powershell,Dom,Com,Ihtmldocument2,我正在编写一个脚本,该脚本读取本地HTML文件,修改DOM树,然后保存。使用HTMLFileCOM对象而不是Invoke WebRequest,似乎是唯一的方法 重写到其他属性,如href就像一个符咒。但不知何故,我发现不可能更改锚点的name属性,除非通过设置outerHTML属性来重新创建整个元素,因为该属性既复杂又难看。然而,removeAttribute方法可以工作,但这不是我想要的 测试用例: $idoc = New-Object -ComObject "HTMLFile" $idoc
HTMLFile
COM对象而不是Invoke WebRequest
,似乎是唯一的方法
重写到其他属性,如href
就像一个符咒。但不知何故,我发现不可能更改锚点的name
属性,除非通过设置outerHTML
属性来重新创建整个元素,因为该属性既复杂又难看。然而,removeAttribute
方法可以工作,但这不是我想要的
测试用例:
$idoc = New-Object -ComObject "HTMLFile"
$idoc.IHTMLDocument2_write("<body><a name=123></a><a name=456></a></body>")
$idoc.anchors | foreach {$_.name = "aaa"; /* or $_.setAttribute("name", "aaa") */}
# $idoc.anchors | foreach {$_.getAttribute("name")} <- changed
# $idoc.anchors | foreach {$_.outerHTML} <- remains unchanged
$idoc=新对象-com对象“HTMLFile”
$idoc.IHTMLDocument2_write(“”)
$idoc.anchors | foreach{$\uu.name=“aaa”/*或$\uu.setAttribute(“name”,“aaa”)*/}
#$idoc.anchors | foreach{$\.getAttribute(“名称”)}