functions/Convert-HtmlTableToObject.ps1
|
function Convert-HtmlTableToObject { param ( [string]$HtmlContent ) $targetTable = $HtmlContent | ConvertFrom-Html $rows = $targetTable.SelectNodes(".//tr") $results = @() if ($rows.Count -gt 1) { # Get the header from the first row $headerCells = $rows[0].SelectNodes(".//th") if ($headerCells.Count -eq 0) { $headerCells = $rows[0].SelectNodes(".//td") } $headers = $headerCells | ForEach-Object { $_.InnerText.Trim() } # Process data rows (from index 1 onwards) for ($i = 1; $i -lt $rows.Count; $i++) { $row = $rows[$i] $cells = $row.SelectNodes(".//td") if ($cells) { $values = $cells | ForEach-Object { $_.InnerText.Trim() } # Create object with column names $obj = [PSCustomObject]@{} for ($j = 0; $j -lt $headers.Count; $j++) { $key = $headers[$j] $value = if ($j -lt $values.Count) { $values[$j] } else { "" } $obj | Add-Member -NotePropertyName $key -NotePropertyValue $value } $results += $obj } } } return $results } |