2017-01-20 2 views
1

У меня есть самогенерирующийся HTML файл (в локальной директории) со всем телом на одной линии:Powershell: раскол HTML

<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> 

И мне нужно, чтобы извлечь имя файла и дату. Мне удалось прочитать правильную линию. Но я заблокирован, чтобы разделить линию на <br>.

я попробовать что-то вроде этого:

$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) 

Но у меня есть, что для результата:

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

Я вижу HTML Agility Pack, но в моем случае, у меня нет какой-либо тег на моей странице.

У вас есть совет? Спасибо!

+0

Это сообщение, кажется, чтобы ответить на ваш вопрос: http://stackoverflow.com/questions/16435240/как к раздельным строк по струне-в-PowerShell – c3st7n

ответ

2

String.Split() method принимает вашу строку <br> и рассматривает его как [char] массив, расщепление на каждом появлении либо <, b, r и >.

Использование регулярных выражений на основе -split оператора вместо:

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

Where-Object {$_} Элемент трубопровода будет отфильтровывать пустые строки

Смежные вопросы