public/Get-FiddlerLogsOverview.ps1

function Get-FiddlerLogsOverview {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)]
        [string]$file
    )

    $stream = [System.IO.Compression.ZipFile]::OpenRead($file).GetEntry("_index.htm").Open()
    $reader = [System.IO.StreamReader]::new($stream)
    $content = $reader.ReadToEnd()
    $stream.Close()
    $reader.Close()
    # Use regular expressions to extract the content of the table within the body
    $tableContent = [regex]::Match($content, '<table[^>]*>(.*?)</table>', [System.Text.RegularExpressions.RegexOptions]::Singleline).Groups[1].Value

    # Convert the table content to a PowerShell hashtable
    $table = @()
    $tableRows = [regex]::Matches($tableContent, '<tr>(.*?)</tr>', [System.Text.RegularExpressions.RegexOptions]::Singleline)

    foreach ($row in $tableRows) {
        $columns = [regex]::Matches($row.Groups[1].Value, '<td>(.*?)</td>', [System.Text.RegularExpressions.RegexOptions]::Singleline)
        if (!$columns -or $columns.Count -lt 8) {
            continue
        }
        
        $obj = New-Object -TypeName PSCustomObject -Property @{
            "Seq"         = $columns[1].Groups[1].Value
            "Result"      = $columns[2].Groups[1].Value
            "Protocol"    = $columns[3].Groups[1].Value
            "Host"        = $columns[4].Groups[1].Value
            "URL"         = $columns[5].Groups[1].Value
            "Body"        = $columns[6].Groups[1].Value
            "ContentType" = $columns[8].Groups[1].Value
        } -ErrorAction SilentlyContinue

        if ($null -ne $obj) {
            $table += $obj
        }
    }

    # Display the extracted content as a PowerShell hashtable
    $table | Select-Object Seq, Result, Protocol, Host, URL, Body, ContentType
}