2010-03-01 5 views
3

HTML Agility Pack 사용에 대한 자습서를 찾았습니다. 원하는 모든 작업을 수행하는 것처럼 보이지만 그렇게 강력한 도구 인 경우 약간의 잡음이있는 것 같습니다. 인터넷에서. 이 쉽게 정규 표현식을 사용하여 수행 할 수 있지만 우리 모두가 알HTML 민첩성 팩을 사용하여 메타 태그 및 설명 잡기

public string[] GetTagsByName(string TagName, string Source) { 
    ... 
} 

HTML을 구문 분석에 대한 정규식을 사용하는 것이되지 않도록 :

나는 이름을 기준으로 특정 태그를 검색하는 간단한 방법을 쓰고 있어요 권리. 내가 처음 그 이름에 따라 올바른 태그를 다음의 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)); 

: 지금까지 나는 다음과 같은 코드가 있습니다. 가능한 경우 로봇과 같은 속성을 기반으로 특정 메타 태그를 반환하고 싶습니다. 나는 xpath와 함께 위대하지 않아서, 어떤 도움이 좋을 것이다.

도움을 주시면 감사하겠습니다.

+0

HTML은''또는'을 가지고 사용자가 필요로하지 않는다는 사실을 잊지 마세요 '요소. 그리고 HTML 주석은 대개''로 수행됩니다. – Kolky

+0

나는 그것들을 알고 있고 그것을 처리하기위한 몇 가지 기본적인 정규식을 작성했지만 HTML Agility 팩을 사용하여 이것을 수행하는 것에 대한 정보를 얻는 것에 훨씬 더 관심이있다. 그것을위한 문서는 비참하다! – AlexT

답변

10

HtmlAgilityPack의 HtmlDocument는 IXpathNavigable을 구현하므로 표준 .NET XPath 엔진을 사용합니다. XPath 1.0 문서는 특히 System.Xml.XPath에 대해 언급 할 경우 적용 가능합니다.

"// 코멘트()"모든 댓글을 발견
"// 메타"그것에 대해 예제와 튜토리얼이 다소있을 것입니다 모든

HTMLDocument의이 매우 XmlDocument처럼 보이도록 설계되었다 "메타"요소, 그래서 발견 응용할 수 있는.

일부 MSDN 링크 :