using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using Winista.Text.HtmlParser; using Winista.Text.HtmlParser.Util; using Winista.Text.HtmlParser.Http; using Winista.Text.HtmlParser.Visitors; using Winista.Text.HtmlParser.Filters; using Winista.Text.HtmlParser.Tags; using Winista.Text.HtmlParser.Lex; using Winista.Text.HtmlParser.Nodes; namespace MSNPSharpClient.TrainSearch { class TrainBackTopSearch { public string GetTrainBackTopSearch(string CityFrom, string CityTo) { GetTrainUrlAndHtmlCode getUrlAndHtmlCode = new GetTrainUrlAndHtmlCode(); string str = ""; Lexer lexer = new Lexer(getUrlAndHtmlCode.getTrainSearchHtmlCode(CityFrom, CityTo)); Parser myparser = new Parser(lexer); NodeFilter filter = new HasAttributeFilter("class", "back back_top"); NodeFilter filter1 = new NodeClassFilter(typeof(Div)); NodeList nodelist = myparser.ExtractAllNodesThatMatch(filter); nodelist = nodelist.ExtractAllNodesThatMatch(filter1, true); int m = nodelist.Count; str = nodelist.ElementAt(0).ToPlainTextString(); string strInfo = ""; Char[] c = str.ToCharArray(); if (nodelist.Count != 0) { for (int i = 0; i < c.Length; i++) { if (c[i].ToString() != "/n" && c[i].ToString() != "/t" && c[i].ToString() != "/r") { strInfo += c[i].ToString().Trim(); } } strInfo = strInfo.Replace("转让票纠错", ""); strInfo += "/n"; } else { strInfo = "抱歉,您查询的站点没有列车,请换个站点试试!"; } return strInfo; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; namespace MSNPSharpClient.TrainSearch { class GetTrainNoHtmlCode { public string getTrainNoUrl(string TrainNo) { Encoding gb2312 = Encoding.GetEncoding("gb2312"); string strTrainNo = System.Web.HttpUtility.UrlEncode(TrainNo, gb2312); //http://skb.kuxun.cn/search.php?T=Train&OEM=&querytype=trainid&q=T176 string IDSearchUrl = "http://skb.kuxun.cn/search.php?T=Train&OEM=&querytype=trainid&q=" + strTrainNo; //Console.WriteLine(CityUrl); //Console.ReadKey(); return IDSearchUrl; } public string getTrainNoHtmlCode(string TrainNo) { string url = getTrainNoUrl(TrainNo); WebClient webclient = new WebClient(); webclient.Encoding = Encoding.UTF8; string htmlcode = webclient.DownloadString(url); return htmlcode; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; namespace MSNPSharpClient.TrainSearch { class GetTrainUrlAndHtmlCode { public string getTrainSearchUrl(string CityFrom,string CityTo) { Encoding gb2312 = Encoding.GetEncoding("gb2312"); //string SimplifiedChinese=Strings.StrConv(City);//繁體轉換成簡體失敗 string strCityFrom = System.Web.HttpUtility.UrlEncode(CityFrom, gb2312); string strCityTo = System.Web.HttpUtility.UrlEncode(CityTo, gb2312); //http://skb.kuxun.cn/search.php?T=Train&OEM=&querytype=fromto&From=%CE%E4%B2%FD&q=%B6%AB%DD%B8 string IDSearchUrl = "http://skb.kuxun.cn/search.php?T=Train&OEM=&querytype=fromto&From=" + strCityFrom + "&q=" + strCityTo; //Console.WriteLine(CityUrl); //Console.ReadKey(); return IDSearchUrl; } public string getTrainSearchHtmlCode(string CityFrom, string CityTo) { string url = getTrainSearchUrl(CityFrom, CityTo); WebClient webclient = new WebClient(); webclient.Encoding = Encoding.UTF8; string htmlcode = webclient.DownloadString(url); return htmlcode; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using Winista.Text.HtmlParser; using Winista.Text.HtmlParser.Util; using Winista.Text.HtmlParser.Http; using Winista.Text.HtmlParser.Visitors; using Winista.Text.HtmlParser.Filters; using Winista.Text.HtmlParser.Tags; using Winista.Text.HtmlParser.Lex; using Winista.Text.HtmlParser.Nodes; namespace MSNPSharpClient.TrainSearch { class GetTrainNo { public string GetTrainNoInfo(string TrainNo) { GetTrainNoHtmlCode getUrlAndHtmlCode = new GetTrainNoHtmlCode(); string str = ""; Lexer lexer = new Lexer(getUrlAndHtmlCode.getTrainNoHtmlCode(TrainNo)); Parser myparser = new Parser(lexer); NodeFilter filter = new HasAttributeFilter("class", "back back_top"); NodeFilter filter1 = new NodeClassFilter(typeof(Div)); NodeList nodelist = myparser.ExtractAllNodesThatMatch(filter); nodelist = nodelist.ExtractAllNodesThatMatch(filter1, true); int m = nodelist.Count; str = nodelist.ElementAt(0).ToPlainTextString(); string strInfo = ""; Char[] c = str.ToCharArray(); if (nodelist.Count != 0) { for (int i = 0; i < c.Length; i++) { if (c[i].ToString() != "/n" && c[i].ToString() != "/t" && c[i].ToString() != "/r") { strInfo += c[i].ToString().Trim(); } } strInfo = strInfo.Replace("转让票纠错", ""); strInfo += "/n"; } else { strInfo = "抱歉,您查询的车次,请换个车次试试!"; } return strInfo; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using Winista.Text.HtmlParser; using Winista.Text.HtmlParser.Util; using Winista.Text.HtmlParser.Http; using Winista.Text.HtmlParser.Visitors; using Winista.Text.HtmlParser.Filters; using Winista.Text.HtmlParser.Tags; using Winista.Text.HtmlParser.Lex; using Winista.Text.HtmlParser.Nodes; namespace MSNPSharpClient.TrainSearch { class TrainSearch { public string GetTrainSearch(string CityFrom,string CityTo) { string strInfo=""; TrainBackTopSearch t = new TrainBackTopSearch(); string str1 = t.GetTrainBackTopSearch(CityFrom, CityTo); TrainBackSearch t1 = new TrainBackSearch(); string str2 = t1.GetTrainBackSearch(CityFrom, CityTo); strInfo = str1 + str2; return strInfo; } } }
MSNP-Sharp是一个能与MSN Messenger(现Windows Live Messenger)服务连接并向客户端编程人员提供相应的IM服务的“中间件”,其前身为DotMSN。它面向.NET开发人员,能使开发人员开发各种基于 Windows Live Messenger服务的客户端程序,例如MSN机器人和开发自己的MSN客户端。 MSNPSharp支持MSN绝大部分的功能,包括:聊天,发
現在去找一些 Ruby 程式碼閱讀一下。你需要自己找程式碼,然後從中學習一些東西。你學到的東西已經足夠讓你看懂一些程式碼了,但你可能還無法理解這些程式碼的功能。這節課我要教給你的是:如何運用你學到的東西理解別人的程式碼。 首先把你想要理解的程式碼印到紙上。沒錯,你需要印出來,因為和螢幕輸出相比,你的眼睛和大腦更習慣於接受紙質列印的內容。一次最多列印幾頁就可以了。 然後通讀你列印出來的代碼並做好標記
Jenkins 作為一個持續整合的工具,與原始碼管理系統的整合尤其重要。在這個章節內,我們會介紹如何在 Jenkins 上透過原始碼管理 (source code management, SCM) 系統,例如 GitHub 來獲得專案的原始碼,並設置建置觸發程序 (build triggers) 來實踐持續整合。 接下來我一樣會使用這個專案來當作範例。我要利用 ansible-lint 這個語法檢
好大的一個標題。接下來我要教你「函式 (function)」了!咚咚鏘!說到函式,不一樣的人會對它有不一樣的理解和使用方法,不過我只會教你現在能用到的最簡單的使用方式。 函式可以做三件事情: 它們可以給程式碼片段取名,就跟「變數」給字串和數字命名一樣。 它們可以接受參數,就跟你的腳本接受 ARGV 一樣。 通過使用 #1 和 #2 ,他們可以讓你創造出「迷你腳本」或者「微命令」。 你可以在 Rub
问题 你构建了一个自定义容器对象,里面包含有列表、元组或其他可迭代对象。 你想直接在你的这个新容器对象上执行迭代操作。 解决方案 实际上你只需要定义一个 __iter__() 方法,将迭代操作代理到容器内部的对象上去。比如: class Node: def __init__(self, value): self._value = value self._ch
问题内容: 这是一个从来没有一个正确答案的问题,我已经在网上搜索了很多次,却找不到解决方案。 它适用于Firefox,Chrome。我的responseText将像Réunion这样返回char,它将显示为奇怪的符号。 我尝试了许多方法,例如编码和解码,在响应文件中设置标头都无效。我没主意了。请帮助某人。 在主文件中,确保设置了内容类型和字符集。 在您的AJAX加载页面中,确保您位于顶部。 问题解
用于行内代码片断以及更长的、多行代码的样式。 内联代码 用code包裹内联代码片断。勿忘转义HTML尖括号。 For example, <code><section></code> should be wrapped as inline. 预格式化文本 或者说,代码块,使用<pre>的多行代码文本。再一次提醒,请勿忘转义代码中的所有尖括号,以实现正确的渲染。你可以视情况添加.pre-scrolla
你竟任着刚硬不悔改的心,为自己积蓄忿怒,以致神震怒,显他公义审判的日子来到。他必照各人的行为报应各人。凡恒心行善,寻求荣耀、尊贵和不能朽坏之福的,就以永生报应他们;惟有结党不顺从真理,反顺从不义的,就以忿怒、恼恨报应他们。(ROMANS 2:7-8) 迭代 Bill正在介绍他的项目,嘴里不断蹦出“loop、iterate、traversal、recursion”这些单词,夹杂在汉语汇总。旁边的小白