<div id="x" class="news_list">
   <div class="content" style="padding-top:10px">
   <DIV align=center>
   <STRONG><FONT size=2>站长信箱 </FONT></STRONG>
</div>
----------------------------------------------------------
如上字符串
我想找到id为x的div中间的内容
这个div之间有不可预计的很多html代码
而且此div是一html中的某段代码希望达人们指点 一起讨论一下

解决方案 »

  1.   

    一、用正则表达式
    二、用XMLDOM很方便
      

  2.   

    回二楼
    1,正则表达式是可以,那么请试试匹配一下这id为x中的一段内容
    <div id="x" class="news_list"> 
      <div class="content" style="padding-top:10px"> 
      <DIV align=center> 
      <STRONG> <FONT size=2>站长信箱 </FONT> </STRONG> 
    </div> 2,xmldom肯定方便,但是我现在是在winfrom程序中,不知道怎么用xmldom,请指教
      

  3.   


    XmlDocument doc = new XmlDocument();
    doc.LoadXml(要处理的字符串);
    XmlNode nod = doc.SelectSingleNode("//div[id='x']");
    nod.InnerText;  // 节点内文本
    nod.InnerXml;   // 节点内代码内容
      

  4.   

    我试试看用xmldom 谢谢 3楼
      

  5.   


    你给的例子就是你要的结果吗?
    不可预知也要有个限度的,中间的两个div不闭合?除非你说取到第一个</div>为止,否则中间有不闭合的div标签,是没有办法判断应该取到哪里结束的
      

  6.   

    用DOM·····
    直接可以得到里面的内容C#里面封装了DOM的访问模型咯的
      

  7.   

    注意加上 using System.Xml
      

  8.   

    平衡组/递归匹配:string str="...";
    Regex   reg=   new   Regex("<div[^>].*?id=""x""[^>].*?>[^<>]*(((?'Open'<div[^>]*>)[^<>]*)+((?'-Open'</div>)[^<>]*)+)*(?(Open)(?!))</div>",RegexOptions.IgnoreCase);   
    MatchCollection   matchs=reg.Matches(str);
    Response.Write(matchs[0].Value);
      

  9.   

    内部嵌套的html代码不一定是div,正则表达式改成下面试试(随手写的,我没测试):<div[^>].*?id=""x""[^>].*?>[^<>]*(((?'Open'<(\w+)[^>]*>)[^<>]*)+((?'-Open'</\4>)[^<>]*)+)*(?(Open)(?!))</div>