xpath와 함께 C # 구문 분석 HTML

c# html-agility-pack xpath

문제

나는 증권 거래소 정보를 HTML 문서에서 간단한 C #으로 분석하려고합니다. 문제는 내가 구문 주위에 머리를 얻을 수 없다는 것입니다, tr class = "LomakeTaustaVari" 는 파싱되지만, tr-class가없는 두 번째 비트는 어떻게 얻을 수 있습니까?

여기에 HTML 조각이 있습니다.이 HTML 조각은 서로 다른 값을 반복합니다.

<tr class="LomakeTaustaVari">
    <td><div class="Ensimmainen">12:09</div></td>
    <td><div>MSI</div></td>
    <td><div>POH</div></td>
    <td><div>42</div></td>
    <td><div>64,50</div></td>
</tr>
<tr>
    <td><div class="Ensimmainen">12:09</div></td>
    <td><div>SRE</div></td>
    <td><div>POH</div></td>
    <td><div>156</div></td>
    <td><div>64,50</div></td>
</tr>

내 C # 코드 :

{
    HtmlAgilityPack.HtmlWeb web = new HtmlWeb();
    HtmlAgilityPack.HtmlDocument doc = web.Load ("https://www.op.fi/op/henkiloasiakkaat/saastot-ja-sijoitukset/kurssit-ja-markkinat/markkinat?sivu=alltrades.html&sym=KNEBV.HSE&from=10:00&to=19:00&id=32453");

    foreach (HtmlNode row in doc.DocumentNode.SelectNodes("//tr[@class='LomakeTaustaVari']")) 
    {
        Console.WriteLine(row.InnerText);     
    }
    Console.ReadKey();
}

인기 답변

다음 xpath를 사용해보십시오 //tr[preceding-sibling::tr[@class='LomakeTaustaVari']] :

var nodes = doc.DocumentNode.SelectNodes("//tr[preceding-sibling::tr[@class='LomakeTaustaVari']]");

그것은 선행 노드 tr 을 갖는 노드들을 LomakeTaustaVari 클래스로 선택해야한다.

단지 참고 사항 : 노드가 발견되지 않으면 SelectNodes 메서드는 null 반환합니다.



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