2014-02-18 2 views
2

Я использую HTMLAgility для разбора HTML-документа.Анализ HTML для получения ключа и значения

Я скачал dll от codeplex и referenced к моему проекту.

Теперь вся моя потребность разобрать этот HTML (ниже):

<HTML> 
<BODY> 
//...................... 
<tbody ID='image'> 
<tr><td>Video Codec</td><td colspan=2>JPEG (8192 KBytes)</td></tr> 
</BODY> 

Теперь мне нужно получить Video Codec и его значение JPEG из приведенного выше HTML.

Я знаю, что могу использовать HTMLAgility, но как это сделать?

  var document = new HtmlDocument(); 
      string htmlString = "<tbody ID='image'>"; 
      document.LoadHtml(htmlString); 
      // how to get the Video Codec and its value `JPEG` ? 

Любые указатели очень ценятся.

EDIT:

я смог перейти от ответа @itedi «ы на немного, но все-таки застрял.

var cells = document.DocumentNode 
       // use the right XPath rather than looping manually 
           .SelectNodes(@"//table") 
           .ToList(); 

      var tbodies = cells.First().SelectNodes(@"//tbody").ToList(); 

дает мне все tbody «S, но как вывести значения из него?

+1

Возможный дубликат: http://stackoverflow.com/questions/4573012/parsing-tables- cell-with-html-agility-in-c-sharp, если это не поможет вам на вашем пути. – jamespick

+1

@itedi: Спасибо itedi. Пожалуйста, смотрите мой «править». Я смог перейти к указанному пункту, а затем застал. Любые указатели очень полезны. Еще раз спасибо. –

ответ

0

Гораздо легче путь будет использовать регулярное выражение:

string s = @"<tbody ID='image'> 
        <tr><td>Video Codec</td><td colspan=2>JPEG (8192 KBytes)</td></tr> 
        </BODY>"; 
var results = Regex.Match(s, "<td>Video Codec</td><td.*?>(.+?)</td>").Groups[1]; 

Возвращает: JPEG (8192 КБайт)

Смежные вопросы