Html 在Powershell中,使用-replace或.replace将TD值更改为链接

Html 在Powershell中,使用-replace或.replace将TD值更改为链接,html,xml,powershell,Html,Xml,Powershell,我正在尝试生成Powershell中收集的数据的HTML报告。我希望最终有一个HTML链接,指向关于表中不同元素的更具体信息。特别是,第一列包含虚拟机的名称,但这并不特别重要。我试图用链接替换名称值 for($i=1; $i -le $xml.table.tr.Count-1; $i++){ $xml.table.tr[$i].td[0].replace($xml.table.tr[$i].td[0],"<a href=`"http://stackoverflow.com`">m

我正在尝试生成Powershell中收集的数据的HTML报告。我希望最终有一个HTML链接,指向关于表中不同元素的更具体信息。特别是,第一列包含虚拟机的名称,但这并不特别重要。我试图用链接替换名称值

 for($i=1; $i -le $xml.table.tr.Count-1; $i++){
 $xml.table.tr[$i].td[0].replace($xml.table.tr[$i].td[0],"<a href=`"http://stackoverflow.com`">myLink</a>")
 }

  $file = Join-Path C:\users\myname\Documents "VMSpecs.html"

  ConvertTo-Html -Title "VM Specs" `
  -CssUri C:\Users\myname\Documents\style.css `
  -Body $($xml.InnerXml) | Out-file $file


 Invoke-item $file
for($i=1;$i-le$xml.table.tr.Count-1;$i++){
$xml.table.tr[$i].td[0]。替换($xml.table.tr[$i].td[0],“”)
}
$file=加入路径C:\users\myname\Documents“VMSpecs.html”
转换为Html-标题“VM规范”`
-CssUri C:\Users\myname\Documents\style.css`
-Body$($xml.InnerXml)| Out文件$file
调用项$file
根据输出,$xml.table.tr[$i].td[0]的值将替换为链接信息,但不会永久替换。当文件被写入HTML时,链接信息不存在,原始值仍然保存在td el中


所以,总而言之,我想知道如何在特定位置将链接附加到html片段中。非常感谢任何示例或资源。

两者。替换和-Replace生成一个新字符串。您要做的是重新分配结果:

for($i=1; $i -le $xml.table.tr.Count-1; $i++){
  $xml.table.tr[$i].td[0] = $xml.table.tr[$i].td[0].replace($xml.table.tr[$i].td[0],"<a href=`"http://stackoverflow.com`">myLink</a>")
 }

您是如何写回结果的?目前它会为每个td[0]打印指向控制台的链接。。。如果我在调用replace之前添加$xml.table.tr[$I].td[0]=控制台没有输出,并且$xml.table.tr[$I].td[0]没有更改请提供更多代码…我的意思是我尝试了KevinD建议的内容,但内容没有被替换。。我添加了转换为html并调用文件的代码的最后一部分是的,我也尝试过,但调用html后td的初始内容仍然存在…我意识到直接赋值根本不起作用,这可能是我问题的根源,即$xml.table.tr[$I].td[0]=“任何东西”只是根本不起作用;内容保持不变。是的,它也按照我的要求工作,但没有像我希望的那样创建链接,只是链接的文本。我将不得不进一步研究XML解析技术。我没有意识到它会逃过html。我刚刚更新了我的答案,包括为链接创建一个新的XML元素,然后将其添加到td node.awesome!这从本质上回答了我关于如何操纵PS数据成为交互式“网站”的许多问题。谢谢!
 for($i=1; $i -le $xml.table.tr.Count-1; $i++){
  $xml.table.tr[$i].td[0] = "<a href=`"http://stackoverflow.com`">myLink</a>"
 }
 for($i=1; $i -le $xml.table.tr.Count-1; $i++){
  ($xml.table.tr[$i].GetElementsByTagName("td") | Select-Object -First 1)."#text" = "<a href=`"http://stackoverflow.com`">myLink</a>"
 }
for($i=1; $i -le $xml.table.tr.Count-1; $i++){
  $link = $xml.CreateElement("a")
  $link.SetAttribute("href", "http://stackoverflow.com")
  $link.InnerText = "myLink"
  $xml.table.tr[$i].FirstChild."#text" = ""
  $xml.table.tr[$i].FirstChild.AppendChild($link)
}