Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Парсинг сложных тегов Html


Автор: Alkash 7.4.2010, 12:54
Доброе время суток господа. Есть html страничка,  из неё надо выдернуть пару - ссылка - её разметка. Пробовал разными способами, через SgmlReader + xpath, через XmlDocument пробегаться по нодам, регулярками - никак не получается. 

Код

  <a class="some_cat_alph_l" href="/catalog.xml?hid=123456">многобуков</a> 


выше приведён пример разметки, в реальности - он спрятан ещё в кучу всяких div'ов и tr\td.

Каким образом можно выдернуть содержимое href="" и содержимое, обозначеное мной как "многобуков".
Заранее благодарен.

Автор: wester 7.4.2010, 14:06
<a class="some_cat_alph_l" href="(?<name1>/[a-zA-Z?1-9/?=.]+)">(?<name2>\w+)</a> 
это паттерн 
обращаться типа так 

var variable = match.Groups["name1"].Value

где match есть 
var match = Regex.Match(source, @"<a class="some_cat_alph_l" href="(?<name1>/[a-zA-Z?1-9/?=.]+)">(?<name2>\w+)</a>")

Автор: Alkash 7.4.2010, 14:20
\w - нераспознаная управляющая последовательность-)

Буду ковырять дальше

Автор: wester 7.4.2010, 14:25
забыл.
надо было экранировать 
вот 
Код

var patt = @"<a class=""some_cat_alph_l"" href=""(?<name1>/[a-zA-Z?1-9/?=.]+)"">(?<name2>\w+)</a>";

Автор: Alkash 7.4.2010, 14:51
Спасиб, решено.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)