2012-04-11 96 views
0

我有以下文字來自文本的正則表達式特定標籤?

<fieldset> 
<ul id="ContentPlaceHolder2_1g" class="profList column ui-sortable"> 
<legend class="group">المجموعه 1</legend> 
<li id="ContentPlaceHolder2_8">محمود حسن ابراهيم عبد الصمد</li> 
/ul></fieldset> 
    <fieldset> 
<ul id="ContentPlaceHolder2_2g" class="profList column ui-sortable"> 
<legend class="group">المجموعه 2</legend> 
<li id="ContentPlaceHolder2_9">محمود فتحى ابراهيم عبد الصمد</li> 
    <li id="ContentPlaceHolder2_10">احمد محسن احمد على</li> 
    <li class="" style="" id="ContentPlaceHolder2_3">احمد درويش محمود عباس</li> 
</ul> 
</fieldset> 

<fieldset> 
    <ul id="ContentPlaceHolder2_3g" class="profList column ui-sortable"> 
    <legend class="group">المجموعه 3</legend> 
<li id="ContentPlaceHolder2_11">محمد سيد محمد سيد</li> 
    </ul> 

</fieldset> 

我想遍歷它讓每一個UL標籤和IL裏面inedd在UL標籤的所有elemet和陣列的每個UL標籤

+0

看一看[除XHTML自足標籤的正則表達式匹配開放標籤(http://stackoverflow.com/問題/ 1732348 /正則表達式匹配open-tags-except-xhtml-self-contained-tags) – jtbandes 2012-04-11 09:33:45

回答

1

使用HtmlAgilityPack

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
doc.LoadHtml(html); 
var list = doc.DocumentNode.Descendants("ul") 
    .Select(n => n.Descendants("li").Select(li => new {id=li.Id,text=li.InnerText }).ToList()) 
    .ToList(); 

foreach (var ul in list) 
{ 
    foreach(var li in ul) 
    { 
     Console.WriteLine(li.id + " " + li.text); 
    } 
    Console.WriteLine(); 
} 
+0

好的如何循環提取每個il和它的文本的id – 2012-04-11 10:06:26

+1

@ahmednaguib看到答案。我更新了。 – 2012-04-11 10:19:40

+0

非常感謝你,但是最後一件事情是我希望得到像ilach這樣的il id(var ul in ul) {string id = li.id; Console.WriteLine(li); }如何在var列表中編碼 – 2012-04-11 11:07:07

2

這是一個壞主意用RegEx解析html。可能是你應該考慮到DOM解析器,例如Html Agility Pack