PowerShell V3에서 HTML 테이블 구문 분석

html-agility-pack powershell

문제

나는 다음과 같은 HTML 테이블 Link HTML을 가지고있다.

그것을 파싱하고 XML / CSV / PS Object로 변환하려고합니다. HtmlAgilityPack.dll을 사용하려했지만 성공하지 않았습니다. 아무도 나에게 어떤 방향이라도 줄 수 있니?


테이블을 PSObject로 변환하고 CSV로 내보내려고합니다. 현재 코드의 시작 부분과 라인에 대한 액세스가 있지만 라인의 값에 액세스 할 수 없습니다.

Add-Type -Path C:\Windows\system32\HtmlAgilityPack.dll
$HTML = New-Object HtmlAgilityPack.HtmlDocument
$res = $HTML.Load("C:\Test\Test.html")
$table = $HTML.DocumentNode.SelectNodes("//table/tr/td/nobr")

$ table [0..47] .InnerHtml에 액세스 할 때 파일의 첫 번째 ** 열 **을 얻었고 두 번째 등 액세스 할 수 없습니다.

Ohad 감사합니다.

수락 된 답변

당신은 <nobr> 태그 안에있는 모든 HTML을 얻기 위해 이것을 시도 할 수있다. 나는 당신이 원하는 것을 출력하기위한 논리를 찾도록했다 ...

$ie = new-object -com "InternetExplorer.Application"
$ie.navigate("http://urltoyourfile.html")
$doc = $ie.Document
($doc.getElementsByTagName("nobr"))|%{$_.innerHTML}

출력 :

Lead User&nbsp;&nbsp;
Accesses&nbsp;&nbsp;
Last Accessed&nbsp;&nbsp;
Average&nbsp;&nbsp;
Max&nbsp;&nbsp;
Min&nbsp;&nbsp;
Total&nbsp;&nbsp;
amirt</NO br>
2
01/20/2013 09:40:47
04:18:17
06:19:26
02:17:09
08:36:35
andream
1
01/20/2013 10:33:01
02:34:37
02:34:37
02:34:37
02:34:37
avnerm
1
01/17/2013 11:34:16
00:30:44
00:30:44
00:30:44
00:30:44
brouria

그것을 파싱하는 방법 :

($doc.getElementsByTagName("nobr"))|%{
    write-host -nonew $_.innerHTML";"
    $cpt++
    if ($cpt % 8 -eq 0){$cpt=1;write-host ""}
}


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.