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

时间:2015-04-17 21:05:19

标签: html xml linq powershell powershell-v4.0

我目前正在尝试使用此脚本来格式化HTML表格(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上提供的脚本,发现在传递HTML时,System.Xml.Linq的Parse函数在大XML节点上返回,而不是单独的XML节点。它确实声明它需要System.Xml.Linq v2并且我只设法找到v3和v4的dll?

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

1 个答案:

答案 0 :(得分:0)

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

在替换了Linq dll需求后,可以合理地导入Linq功能,两个库中的两个函数都正常工作。

因此,确定Linq dll与PowerShell不完全兼容,并且无法完美地将HTML解析为XML。

解决方案是使用自定义assmebly导入(例如此script中的导入)或一起使用不同的库。