有没有现成的类,或者第三方dll,现在有急用,各位帮帮忙。
我就想取标签中的文本内容

解决方案 »

  1.   

    CYQ.Data 数据框架 除了可以操作数据库[access、mssql、oracle、sqlite、mysql]之外,CYQ.Data.Xml名称空间下的XmlHelper类,可以非常方便操作html/xml
      

  2.   

    或者参考这个例子,这个例子是提取所有超链接的:
    using System; 
    using System.Xml; 
    using System.Text; 
    using System.Net; 
    using System.IO; 
    using System.Collections; 
    using System.Text.RegularExpressions; public class App 

    public static void Main() 

    string strCode; 
    ArrayList alLinks; Console.Write("请输入一个网页地址:"); 
    string strURL = Console.ReadLine(); 
    if(strURL.Substring(0,7) != @"http://") 

    strURL = @"http://" + strURL; 
    } Console.WriteLine("正在获取页面代码,请稍侯..."); 
    strCode = GetPageSource(strURL); Console.WriteLine("正在提取超链接,请稍侯..."); 
    alLinks = GetHyperLinks(strCode); Console.WriteLine("正在写入文件,请稍侯..."); 
    WriteToXml(strURL,alLinks); 
    } // 获取指定网页的HTML代码 
    static string GetPageSource(string URL) 

    Uri uri =new Uri(URL); HttpWebRequest hwReq = (HttpWebRequest)WebRequest.Create(uri); 
    HttpWebResponse hwRes = (HttpWebResponse)hwReq.GetResponse(); hwReq.Method = "Get"; hwReq.KeepAlive = false; StreamReader reader = new StreamReader(hwRes.GetResponseStream(),System.Text.Encoding.GetEncoding("GB2312")); return reader.ReadToEnd(); 
    } // 提取HTML代码中的网址 
    static ArrayList GetHyperLinks(string htmlCode) 

    ArrayList al = new ArrayList(); string strRegex = @"http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"; Regex r = new Regex(strRegex,RegexOptions.IgnoreCase); 
    MatchCollection m = r.Matches(htmlCode); for(int i=0; i<=m.Count-1; i++) 

    bool rep = false; 
    string strNew = m[i].ToString(); // 过滤重复的URL 
    foreach(string str in al) 

    if(strNew==str) 

    rep =true; 
    break; 

    } if(!rep) al.Add(strNew); 
    } al.Sort(); return al; 
    } // 把网址写入xml文件 
    static void WriteToXml(string strURL, ArrayList alHyperLinks) 

    XmlTextWriter writer = new XmlTextWriter("HyperLinks.xml",Encoding.UTF8); writer.Formatting = Formatting.Indented; 
    writer.WriteStartDocument(false); 
    writer.WriteDocType("HyperLinks", null, "urls.dtd", null); 
    writer.WriteComment("提取自" + strURL + "的超链接"); 
    writer.WriteStartElement("HyperLinks"); 
    writer.WriteStartElement("HyperLinks", null); 
    writer.WriteAttributeString("DateTime",DateTime.Now.ToString()); 
    foreach(string str in alHyperLinks) 

    string title = GetDomain(str); 
    string body = str; 
    writer.WriteElementString(title,null,body); 
    } writer.WriteEndElement(); 
    writer.WriteEndElement(); writer.Flush(); 
    writer.Close(); 
    } // 获取网址的域名后缀 
    static string GetDomain(string strURL) 

    string retVal; string strRegex = @"(\.com/|\.net/|\.cn/|\.org/|\.gov/)"; Regex r = new Regex(strRegex,RegexOptions.IgnoreCase); 
    Match m = r.Match(strURL); 
    retVal = m.ToString(); strRegex = @"\.|/$"; 
    retVal = Regex.Replace(retVal, strRegex, "").ToString(); if(retVal == "") 
    retVal = "other"; return retVal; 


      

  3.   

    思路:使用StreamReader读取网站(页面源码),然后使用XmlTextWriter将提取的内容写入xml文件即可
      

  4.   

    yalan你好,请教一个问题。
    我发了一个贴:
    http://topic.csdn.net/u/20110302/17/1f881d48-37d6-44c5-89dd-d4b9d305ce5e.html?90839
     
     
      

  5.   

    正则获取
    StreamReader sr = new StreamReader(Server.MapPath ("MailAudit.htm"),System.Text.Encoding.GetEncoding("gb2312"));
      reader.InputStream = new StringReader(sr.ReadToEnd());
      using (StringWriter stringWriter = new StringWriter())
      {
      using (XmlTextWriter writer = new XmlTextWriter(stringWriter))
      {
      writer.Formatting = Formatting.Indented;
      XmlDocument doc = new XmlDocument();
      doc.Load(reader);
      doc.Save(“”);
      }
      }
    解析XMLhttp://topic.csdn.net/u/20100428/19/46bf1fab-1498-4c17-aece-e9efa8143391.html