You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中如何将ParsedHTML结果转换为数组?

解决PowerShell中直接将多行HTML字符串转为数组的问题

嘿,我来帮你搞定这个麻烦!你现在完全不用把HTML写入文件再读回来——因为$x[1].outerHTML本质是一个包含换行符的字符串,我们直接在内存里就能把它拆分成数组,下面给你几个实用的方法:

方法1:用-split运算符快速拆分

这是最简单直接的方式,用正则表达式匹配所有常见的换行格式(Windows的\r\n和Unix的\n都能覆盖):

$content = Invoke-WebRequest -Uri $Uri
$x = $content.ParsedHtml.getElementsByTagName('TR')
# 将多行HTML字符串拆分为数组
$htmlLineArray = $x[1].outerHTML -split '\r?\n'

# 测试一下数组效果
$htmlLineArray[0]  # 输出第一行HTML
$htmlLineArray.Count  # 输出总行数

方法2:拆分同时过滤空行

如果你的HTML里有不少空白行,想直接去掉的话,加上Where-Object就行:

$htmlLineArray = $x[1].outerHTML -split '\r?\n' | Where-Object { $_ -trim() -ne '' }

方法3:用StringReader逐行读取

如果你需要更精细的逐行处理逻辑,比如读取时做额外操作,可以用.NET的StringReader类:

$content = Invoke-WebRequest -Uri $Uri
$x = $content.ParsedHtml.getElementsByTagName('TR')

$htmlString = $x[1].outerHTML
$reader = [System.IO.StringReader]::new($htmlString)
$htmlLineArray = @()

while ($currentLine = $reader.ReadLine()) {
    # 这里可以加自定义处理,比如trim或者筛选
    $htmlLineArray += $currentLine
}

$reader.Dispose()  # 记得释放资源

这些方法都是直接在内存中处理字符串,完全跳过了写入文件的步骤,效率更高也更简洁。

内容的提问来源于stack exchange,提问作者Martin23mm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:20:45