Я искал учебные пособия по использованию 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, а затем вернуть правильный тег на основе его имени. Если возможно, я также хотел бы вернуть определенные метатеги на основе атрибута, например robot. Я не очень хорошо разбираюсь в xpath, поэтому любая помощь в этом была бы хороша.
Любая помощь приветствуется.
<head>
или<body>
. А HTML-комментарии обычно делаются с помощью<!-- comment -->
. - person Kolky   schedule 01.03.2010