Возможно ли обернуть HtmlElement другим HtmlElement? И если да, то как?Как обернуть HtmlElement в HtmlDocument
Позволяет сказать, у меня есть этот HTML, и я хочу, чтобы обернуть img
с дополнительным div
:
<html>
<head><title>foo</title></head>
<body>
<img src="test.png"/>
<p>Hello World</p>
</body>
</html>
Я попытался использовать следующий фрагмент кода (пь элемент документа является HtmlDocument):
$htmlFile = New-Object -ComObject "HTMLFile"
$htmlFile.IHtmlDocument2_write((gc -Path "./html.htm" -Raw))
$htmlFile.documentElement.getElementsByTagName("img") | %{
$div = $htmlFile.createElement("div")
$div.className += "nonbreakingImage"
$void = $div.appendChild($_)
$_.OuterHtml = $div.OuterHtml
}
Но это, к сожалению, только удаляет тег изображения:
<BODY><P>Hello World</P></BODY>
Другой идея был, чтобы сделать что-то вроде этого:
$htmlFile = New-Object -ComObject "HTMLFile"
$htmlFile.IHtmlDocument2_write((gc -Path "./html.htm" -Raw))
$htmlFile.documentElement.getElementsByTagName("img") | %{
$parent = $_.parentNode
$void = $parent.removeChild($_)
$div = $parent.appendChild($htmlFile.createElement("div"))
$div.className += " nonbreakingImage"
$void = $div.appendChild($_)
}
Но это оставляет меня с неправильным порядком ребенка:
<BODY>
<P>Hello World</P>
<DIV class=" nonbreakingImage"><IMG src="test.png"></DIV>
</BODY>
Любых идеи и советы приветствуются!