Простой анализ html-файла для значений <U></U> в .net? - PullRequest
1 голос
/ 09 октября 2009

Ищите в .NET простые средства для анализа html-файла, чтобы получить все значения в тегах <u></u>.

Пример: <U>105F</U>

В этом файле может быть много таких тегов с другими тегами, но все, что мне нужно, это циклически пройти и получить список всех значений, чтобы они могли быть затем обработаны.

Ищете легкий маленький способ справиться с этим.

Ответы [ 5 ]

3 голосов
/ 09 октября 2009

Определенно Регулярные выражения:

Dim myPattern As String = "<U>(.*?)</U>"

    For Each thisMatch As Match In System.Text.RegularExpressions.Regex.Matches(myPage1HTML, myPattern,RegexOptions.IgnoreCase)
            Response.write(thisMatch.ToString)
    Next
0 голосов
/ 09 октября 2009

Html Agility Pack .

Я настоятельно советую не использовать регулярные выражения для разбора HTML. Они отличный инструмент, но они не подходят для этой работы. HTML просто слишком сложен. Как только вы нажмете один из крайних вариантов (встроенные теги, вложенные теги и т. Д.), Вы поймете, что я имею в виду.

РЕДАКТИРОВАТЬ: См. Также Код ужасов: Разбор: за пределами регулярных выражений

0 голосов
/ 09 октября 2009

пример использования Xpath с XMLDocument

XmlDocument doc = new XmlDocument();
doc.Load("file.html");

XmlNodeList nodeList = doc.DocumentElement.SelectNodes("//u");
foreach (XmlNode title in nodeList) {
    Console.WriteLine(title.InnerXml);
}

взято из здесь

0 голосов
/ 09 октября 2009
XmlNodeList list = doc.SelectNodes("//u");

Получает список U узлов

0 голосов
/ 09 октября 2009

Если HTML-документ правильно сформирован, XPath будет моим первым выбором.

Пример запрашиваемого кода (никогда не проверял);

var doc                    = new XPathDocument (@"path\to\file.html");
XPathNavigator navigator   = doc.CreateNavigator ();
XPathNodeIterator iterator = navigator.Select ("//U");
while (iterator.MoveNext ())
    Console.WriteLine ("U: {0}", iterator.Current.Value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...