首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(1) | 引用(2) | 阅读2001次
C# XML HTML SgmlReader sitemap

C# XML HTML SgmlReader sitemap

昨天还在折腾HTML页面解析,还是觉得以前用VB使用WEBBROWSER比较简单,现在模拟一个提交都要监视一个IP数据包,看看里面是不是还隐含提交了什么东西。真是郁闷。

搞了半天,终于根据目前的水平,弄了一个简单的玩意,把我的BLOG提取URL链接,然后制作SITEMAP网站地图。也没有写HTML了,反正就几个页面,简单手工处理完了。

步骤:
1、使用 WebRequest WebResponse 访问页面和获取HTML内容,用UTF-8转码

2、使用 SgmlReader 将HTML虚拟化为 XML

3、根据 XPATH 获得文本标题和超级链接并组合。

private int ipage=0; www.shengfang.org
private void button1_Click(object sender, System.EventArgs e)
{
 ipage=ipage+1;
 string sPageUrl="http://www.shengfang.org/blog/index.php?job=listall&golist=&page="+ipage.ToString();
 string sContent="";  www.shengfang.org
 WebRequest  request = WebRequest.Create(sPageUrl); 
 WebResponse response = request.GetResponse(); 
 Stream resStream = response.GetResponseStream();     
 Encoding encode = System.Text.Encoding.GetEncoding("utf-8");

 StreamReader sr = new StreamReader(resStream, encode); 
 html.Text=sr.ReadToEnd();
 SgmlReader reader = new SgmlReader();
 reader.DocType = "HTML";
 reader.InputStream = new StringReader(html.Text);
 StringWriter sw = new StringWriter();
 XmlTextWriter writer = new XmlTextWriter(sw);
 writer.Formatting = Formatting.Indented;
 while (reader.Read())
 {   www.shengfang.org
  if (reader.NodeType != XmlNodeType.Whitespace)
  {
   writer.WriteNode(reader, true);
  }
  }
 xml.Text = sw.ToString();
 resStream.Close();  
 sr.Close();  www.shengfang.org
}

private void button2_Click(object sender, System.EventArgs e)
{
 string sXPath="/html/body/div/table/tr/td/table/table/tr/td/div/table/tr/td/span/a";
 System.Text.StringBuilder sb = new System.Text.StringBuilder();
 System.Xml.XPath.XPathDocument doc = new System.Xml.XPath.XPathDocument(new StringReader(xml.Text));  www.shengfang.org
 System.Xml.XPath.XPathNavigator nav = doc.CreateNavigator();
 System.Xml.XPath.XPathNodeIterator nodes = nav.Select(sXPath);

 string sXPath1="/html/body/div/table/tr/td/table/table/tr/td/div/table/tr/td/span/a/ at href";
 System dot Xml.XPath.XPathDocument doc1 = new System.Xml.XPath.XPathDocument(new StringReader(xml.Text));  www.shengfang.org
 System.Xml.XPath.XPathNavigator nav1 = doc1.CreateNavigator();
 System.Xml.XPath.XPathNodeIterator nodes1 = nav1.Select(sXPath1);
 while (nodes.MoveNext() && nodes1.MoveNext())
 {
  sb.Append("· <a href=""); www.shengfang.org
  sb.Append(nodes1.Current.Value + "">");
  sb.Append(nodes.Current.Value + "</a><br/><br/>rn");
  }
 xpath.Text = sb.ToString();
} www.shengfang.org

· <a href="p/xiyangxinxiang.php">西洋 星象 处女座</a><br/><br/>
· <a href="p/vsnetwinceenv.php">WINCE VS.NET 开发 环境 EN</a><br/><br/>
· <a href="p/wincevsnetcn.php">WINCE VS.NET 开发 环境 中文</a><br/><br/>
· <a href="p/vsnetwinceback.php">WINCE VS.NET 开发 背景知识</a><br/><br/>
· <a href="p/gupaitianjiu1.php">骨牌 牌九 天九</a><br/><br/>
· <a href="p/liuyongliyu.php">柳永 李煜 填词</a><br/><br/>
· <a href="p/perlbijixuexi1.php">perl 语法 函数 学习 笔记</a><br/><br/>

WebRequest 模拟 SUBMIT POST 资料 http://www.shengfang.org/blog/p/websubmitpostinfo.php


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/html2xmlsitemap.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1133835048

2005年12月6日10:10星期二  [Dev开发] 追踪此文的RSS
路过在 2007年12月15日23:47星期六 评论:

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1858
在线: 6||用户: 2577 [列表]
今日:396||到访:2886460
Rss:897737||评论:1605

最新日志

最新评论

友情链接

日历
2008 - 08
     12
3456789
10111213141516
17181920212223
24252627282930
31      

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8