windows - Powershell: split HTML

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en selvstændig genereret HTML-fil (i lokale dir) med hele kroppen på en linje:


<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>server - path</title></head><body><H1>server - path</H1><hr>

<pre><A HREF="/logs/folder/">[To Parent Directory]</A><br><br>         jeudi 5 janvier 2017    19:38       116483 <A HREF="/folder/file1.csv">file1.csv</A><br>         jeudi 5 janvier 2017    19:39       138397 <A HREF="/folder/file2.csv">file2.csv</A></A><br></pre><hr></body></html>


Og jeg skal udtrække navnet på filen og datoen.
Jeg lykkes at læse den rigtige linje. Men jeg er blokeret for at opdele linjen på <br>.


Jeg forsøger noget som dette:


$string = "first line<br>second line <br> third line<br> end<br>"
write-host $string
$separator = "<br>"
$option = [System.StringSplitOptions]::RemoveEmptyEntries
$string.Split($separator, $option)


Men jeg har det til følge:


first line<br>second line <br> third line<br> end<br>
fi
st line
second line
thi
d line
end


Jeg ser HTML Agility Pack, men i mit tilfælde har jeg ikke nogen tag på min side.


Har du nogen råd?
Tak!

Bedste reference


Metoden String.Split() tager din streng <br> og behandler den som en [char] array, opdelt på hver enkelt forekomst af enten <, b, r]] og >. [15]


Brug den regex-baserede -split operatør i stedet:


PS C:> $String -split $separator |Where-Object {$\_}
first line
second line 
 third line
 end


Where-Object {$\_} rørledningselementet filtrerer tomme tænger ud