如何在Powershell中将ParsedHTML分配到数组中

时间:2018-04-03 18:56:16

标签: html powershell parsing

我已经使用Invoke-WebRequest将页面拉入变量$ content。然后我将$ content.ParsedHtml.getElementsByTagName的结果分配给另一个变量$ x。 $ x [1]返回几行HTML。但是我无法将HTML行解析为数组。

$content = Invoke-WebRequest -Uri $Uri
$x = $content.ParsedHtml.getElementsByTagName('TR')
$x[1].outerHTML

如果我将HTML写入文本文件,我可以将其读回数组,但我希望跳过这一步。如果有人有任何建议,将非常感激。

2 个答案:

答案 0 :(得分:1)

找到了解决方案,但我愿意接受任何替代答案的建议: 这对我有用:

$z = $x[1].innerHTML.ToString() -split([Environment]::NewLine)

感谢所有我收到的输入。

答案 1 :(得分:0)

我尝试了以下似乎有效的方法(我已经包含了我测试过的网址)。

每个<tr>...</tr>以及标记之间的所有内容都是数组中的一个条目。

基本上只需展开outerHTML并将其转换为数组。

$uri = "https://www.w3schools.com/html/html_tables.asp"
$content = Invoke-WebRequest -Uri $Uri
[array]$x = $content.ParsedHtml.getElementsByTagName('TR') | select -ExpandProperty outerHTML