blogjava's web log

          blogjava's web log
          ...

          讀新浪博客示例[源代碼下載]

          ??????????? 當然。只是個DEMO. 功能還是很簡單。BUG? 也不少。有興趣你可以下載 自己再改改。
          ?界面:



          閱讀界面:


          關鍵代碼:

          ?public??static?ArrayList?read(string?url,?HttpWebRequest?request,?bool?isFirst)
          ????????
          {
          ????????????Stream?stream?
          =?null;
          ????????????Uri?uri?
          =?new?Uri(url);
          ????????????
          switch?(uri.Scheme)
          ????????????
          {
          ????????????????
          case?"file":
          ????????????????????
          break;
          ????????????????
          case?"https":
          ????????????????????
          goto?case?"http";
          ????????????????
          case?"http":
          ????????????????????
          if?(request?==?null)
          ????????????????????????request?
          =?(HttpWebRequest)WebRequest.Create(uri);
          ????????????????????
          try
          ????????????????????
          {
          ????????????????????????HttpWebResponse?response?
          =?(HttpWebResponse)request.GetResponse();
          ????????????????????????
          try
          ????????????????????????
          {
          ????????????????????????????
          if?(response.ContentEncoding?!=?"")
          ????????????????????????Encoding.GetEncoding(response.ContentEncoding);
          ????????????????????????}
          ????????????????????????
          catch?{?}
          ????????????????????????stream?
          =?response.GetResponseStream();
          ????????????????????}

          ????????????????????
          catch?(WebException?we)
          ????????????????????
          {
          ????????????????????}

          ????????????????????
          break;
          ????????????}

          ????????????ArrayList?list?
          =?null;
          ????????????
          if?(stream?!=?null)
          ????????????
          {
          ????????????????RssSina?rssSina?
          =?new?RssSina(stream);

          ????????????????list
          =?rssSina.Read(isFirst);
          ????????????????rssSina.Close();
          ??????????????????????????????????????}
          ????????????
          return?list;
          ???????????
          ????????}







          分析 新浪的RSS? 就是用的這個方法了。
          ??????///?<summary>
          ????????
          ///?Read?rss
          ????????
          ///?</summary>
          ????????
          ///?<returns></returns>

          ????????public?ArrayList?Read(bool?isFirst)
          ????????
          {
          ????????????
          int?i?=?0;
          ????????????StringBuilder?sb?
          =?new?StringBuilder();
          ????????????
          bool?readData?=?false;
          ????????????
          if?(reader?!=?null)
          ????????????
          {
          ????????????????
          do
          ????????????????
          {
          ????????????????????pushElement?
          =?true;
          ????????????????????readData?
          =?reader.Read();
          ????????????????????
          string?readerName?=?reader.Name.ToLower();
          ????????????????????
          switch?(reader.NodeType)
          ????????????????????
          {
          ??????????????????
          ????????????????????????
          case?XmlNodeType.Element:
          ????????????????????????????
          {
          ????????????????????????????????elementText?
          =?new?StringBuilder();
          ????????????????????????????????
          if?(reader.IsEmptyElement)
          ????????????????????????????????????
          break;
          ????????????????????????????????
          if?(pushElement)
          ????????????????????????????????????xmlNodeStack.Push(readerName);
          ????????????????????????????????
          break;

          ????????????????????????????}

          ????????????????????????
          case?XmlNodeType.EndElement:
          ????????????????????????????
          {
          ????????????????????????????????
          if?(xmlNodeStack.Count?==?1)
          ????????????????????????????????????
          break;
          ????????????????????????????????
          string?childElementName?=?(string)xmlNodeStack.Pop();
          ????????????????????????????????
          string?parentElementName?=?(string)xmlNodeStack.Peek();

          ????????????????????????????????
          switch?(childElementName)
          ????????????????????????????????
          {
          ????????????????????????????????????
          item?classes
          ????????????????????????????????}

          ????????????????????????????????
          switch?(parentElementName)
          ????????????????????????????????
          {
          ???????????????????????????????????????
          ????????????????????????????????????
          case?"sns:a":
          ????????????????????????????????????????
          switch?(childElementName)
          ????????????????????????????????????????
          {
          ????????????????????????????????????????????
          case?"sns:href":
          ????????????????????????????????????????????????
          if?(isFirst)
          ????????????????????????????????????????????????
          {
          ???????????????????????????????????????????????????
          ????????????????????????????????????????????????????
          if?(!pageList.Contains(elementText.ToString())?&&?elementText.ToString().Length?!=?0)
          ????????????????????????????????????????????????????
          {
          ????????????????????????????????????????????????????????
          ????????????????????????????????????????????????????????pageList.Add(elementText.ToString());
          ????????????????????????????????????????????????????}

          ???????????????????????????????????????????????????
          ????????????????????????????????????????????????}

          ????????????????????????????????????????????????
          break;
          ????????????????????????????????????????}

          ????????????????????????????????????????
          break;
          ????????????????????????????????????????

          ????????????????????????????????????
          case?"item":
          ????????????????????????????????????????
          switch?(childElementName)
          ????????????????????????????????????????
          {
          ????????????????????????????????????????????
          case?"title":
          ???????????????????????????????????????????????
          //?listTitle.Add(elementText.ToString());
          ????????????????????????????????????????????????break;
          ????????????????????????????????????????????
          case?"link":
          ???????????????????????????????????????????????linkList.Add(elementText.ToString());
          ????????????????????????????????????????????????
          break;
          ????????????????????????????????????????????
          case?"description":

          ????????????????????????????????????????????????
          break;
          ????????????????????????????????????????????
          case?"sns:pubDate":
          ????????????????????????????????????????????????
          break;

          ????????????????????????????????????????}

          ????????????????????????????????????????
          break;
          ????????????????????????????????}


          ????????????????????????????????
          break;

          ????????????????????????????}

          ????????????????????????????
          case?XmlNodeType.Text:
          ????????????????????????????
          {
          ????????????????????????????????elementText.Append(reader.Value);
          ????????????????????????????????
          break;
          ????????????????????????????}

          ????????????????????????????
          case?XmlNodeType.CDATA:
          ????????????????????????????
          {
          ????????????????????????????????elementText.Append(reader.Value);
          ????????????????????????????????i
          ++;
          ????????????????????????????????
          break;
          ????????????????????????????}

          ????????????????????}

          ????????????????}

          ????????????????
          while?(readData);
          ????????????????
          ????????????}

          ????????????listCont.Add(linkList);
          ????????????
          if(pageList.Count!=0)
          ????????????????listCont.Add(pageList);
          ????????????
          return?listCont;
          ????????}


          詳細 請下載源代碼研究。。
          地址
          http://www.aygfsteel.com/Files/wujun/WjSinaArticlesDemo.rar

          點擊這里直接下載




          posted on 2006-10-23 15:50 record java and net 閱讀(699) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          常用鏈接

          留言簿(44)

          新聞檔案

          2.動態語言

          3.工具箱

          9.文檔教程

          友情鏈接

          搜索

          最新評論

          主站蜘蛛池模板: 昭平县| 沙洋县| 安康市| 藁城市| 理塘县| 上杭县| 攀枝花市| 确山县| 新竹市| 江永县| 南郑县| 漠河县| 城口县| 武安市| 读书| 镇原县| 广灵县| 同德县| 渭南市| 锦屏县| 武宁县| 乐陵市| 台前县| 卓资县| 隆安县| 静乐县| 玉林市| 麦盖提县| 廉江市| 涡阳县| 托克逊县| 东乡族自治县| 天津市| 锡林浩特市| 泾阳县| 治多县| 曲周县| 黄大仙区| 大庆市| 根河市| 宁安市|