HTML Agility Pack을 사용하는 방법에 대한 자습서를 찾았지만 원하는 모든 작업을 수행하는 것처럼 보입니다.하지만 인터넷에서 이와 같은 강력한 도구를 사용하면 소리가 거의 들지 않습니다.
난 이름을 기반으로 주어진 태그를 검색 할 간단한 방법을 쓰고 있어요 :
public string[] GetTagsByName(string TagName, string Source) {
...
}
이것은 정규식을 사용하여 쉽게 할 수 있지만 HTML을 파싱하기 위해 정규식을 사용하는 것이 옳지 않다는 것을 모두 알고 있습니다. 지금까지 다음 코드가 있습니다.
...
// TODO: Clear Comments (can this be done or should I use RegEx?)
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(Source);
ArrayList tags = new ArrayList();
string xpath = "//" + TagName;
foreach (HtmlTextNode node in doc.DocumentNode.SelectNodes(xpath) {
tags.Add(node.Text);
}
return (string[])tags.ToArray(typeof(String));
먼저 HTML에서 모든 주석을 제거하고 그 이름을 기반으로 올바른 태그를 반환 할 수 있기를 원합니다. 가능한 경우 로봇과 같은 속성을 기반으로 특정 메타 태그를 반환하고 싶습니다. 나는 xpath와 함께 위대하지 않아서, 어떤 도움이 좋을 것이다.
어떤 도움이라도 대단히 감사 할 것입니다.
HtmlAgilityPack의 HtmlDocument는 IXpathNavigable을 구현하므로 표준 .NET XPath 엔진을 사용합니다. XPath 1.0 문서는 특히 System.Xml.XPath에 대해 언급 할 경우 적용 가능합니다.
"// comment ()"는 모든 주석을 찾습니다.
"// 메타"는 모든 "메타"요소를 찾습니다.
HtmlDocument는 XmlDocument 와 매우 비슷하게 디자인되었으므로 이에 대한 예제와 튜토리얼이 어느 정도 적용될 수 있습니다.
일부 MSDN 링크 :