HtmlAgilityPack에서 클래스별로 요소를 가져 오는 방법

asp.net c# html-agility-pack

문제

안녕하세요, 나는 HttpWebResponse를 만들고 HtmlPage를 내가 필요한 모든 데이터와 함께 예를 들어 테이블에 필요한 정보를 배열리스트에 저장하고 XML 파일에 저장해야합니다.

html 페이지의 예

<table>
<tr>
<td class="padding5 sorting_1">
<span class="DateHover">01.03.14</span>
</td>
<td class="padding5 sorting_1">
<span class="DateHover" >10.03.14</span>
</td>
</tr>
</table>

내 코드가 작동하지 않는 HtmlAgilityPack

 private static string GetDataByIClass(string HtmlIn, string ClassToGet)
    {
        HtmlAgilityPack.HtmlDocument DocToParse = new HtmlAgilityPack.HtmlDocument();
        DocToParse.LoadHtml(HtmlIn);
        HtmlAgilityPack.HtmlNode InputNode = DocToParse.GetElementbyId(ClassToGet);//here is the problem i dont have method DocToParse.GetElementbyClass
        if (InputNode != null)
        {
            if (InputNode.Attributes["value"].Value != null)
            {
                return InputNode.Attributes["value"].Value;
            }
        }

        return null;
    }

Sow 나는 이것을 배열리스트 (그리고 XML 파일)에 저장할 수 있기 위해 01.03.14와 10.02.14 날짜를 얻기 위해이 데이터를 읽을 필요가있다.

어떤 아이디어를 뿌리면이 날짜를 어떻게 얻을 수 있습니까 (01.03.14 및 10.02.14)?

수락 된 답변

Html Agility Pack에는 XPATH가 지원되므로 다음과 같은 작업을 수행 할 수 있습니다.

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//span[@class='" + ClassToGet + "']"))
{
    string value = node.InnerText;
    // etc...
}

이는 모든 SPAN 요소를 주어진 CLASS 속성을 갖는 문서의 맨 위에서 (처음 /), 재귀 적으로 (두 번째 /) 가져옵니다. 그런 다음 각 요소에 대해 내부 텍스트를 가져옵니다.



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