PowerShell System.Xml.Linq 无法将 XML 解析为 HTML

PowerShell System.Xml.Linq Unable to Parse XML to HTML

我目前正在尝试使用提供的脚本来格式化 HTML table (https://gallery.technet.microsoft.com/scriptcenter/PowerShell-HTML-Notificatio-e1c5759d#content)

我设法让大部分功能正常工作,但无法让 Add-HTMLTableColor 功能正常工作。

我使用的代码如下:

$params = @{
Column = "Used (GB)"
ScriptBlock = {[double]$args[0] -gt [double]$args[1]}}

Get-PSDrive -PSProvider FileSystem | New-HTMLTable -setAlternating $false | Add-HTMLTableColor -Argument 40 -attrValue "background-color:#FFFF99;" @params

但是,它抛出错误:命名空间不正确。

我深入研究了 TechNet 上提供的脚本,发现 System.Xml.Linq returns 的解析函数在大 XML 节点上而不是单独的 XML 节点上 HTML 被传递。它确实声明它需要 System.Xml.Linq v2 而我只找到了 v3 和 v4 的 dll?

问题的根源是版本不正确还是无法将 HTML 正确解析为 XML 的其他原因?还是完全是另一个问题?

我测试了另一个使用系统中的 System.Xml.Linq dll 文件的库。它在尝试使用 dll 时也返回错误。

在用 Linq 功能的组装导入替换 Linq dll 要求后,两个库中的两个函数都可以正常工作。

据此确定Linq dll与PowerShell不完全兼容,无法完美解析HTML到XML。

解决方案是要么使用自定义的 assmebly 导入(例如这个 script 中的那个),要么一起使用不同的库。