특정 웹 페이지에 기록 목록을 작성해야합니다. 나는 텍스트 파일에서 페이지 소스를 얻었습니다. 요소를 기준으로이 노드를 통과해야합니다.
HtmlNodeCollection resultContainer = doc.DocumentNode.SelectNodes("//div[@class='result-list divider-y-5']");
유형 (div, span 등)을 점검 할 필요가있는 각 요소에 대해, "id"및 "class"속성으로 내 레코드 목록을 만들 수 있습니다. 나는 모든 것을 수집하고 싶지 않다. 내가 그들을 통해 반복하면서 직면하게 될 요소의 유형을 알지 못하기 때문에 도움이되지 않습니다. 나는 그들 모두를 확인해야한다. 필요한 모든 데이터는 위에서 언급 한 노드 컬렉션의 자식입니다. 어떤 제안?
foreach(HtmlNode node in resultContainer)
{
//check node type
switch(node.Name)
{
case "div":
{
break;
}
case "p":
{
}
///....etc
}
//get id
String id = node.Attributes["id"].Value;
//get class
String class = node.Attributes["class"].Value;
}
HtmlAgilityPack에서 html 문서를 xml로 변환하는 것이 더 쉽다고 생각합니다. 예 :
doc.Load(htmlStream, true);
doc.OptionOutputAsXml = true;
doc.OptionFixNestedTags = true;
doc.OptionAutoCloseOnEnd = true;
doc.Save(/* your Xml stream or filename */);
그런 다음 일반 .NET XML API (예 : XmlDocument 또는 XDocument 사용)를 사용하여 내용을 처리합니다.