1.读取XML到DataGrid代码:
Public MyXMLDataSet As New DataSet("XMLDataSet")
' DataSet 是数据的一种内存驻留表示形式,无论它包含的数据'来自什么数据源,它都会提供一致的关系编程模型。一个 'DataSet 表示整个数据集,其中包含对数据进行包含、排序和约束的'表以及表间的关系。
MyXMLDataSet.ReadXml("regid.xml") '读入XML文件
form1.DefInstance.DataGrid1.DataSource = MyXMLDataSet 'DefInstance是form1的共享属性, 我们不用创建实'例就可以直接用‘类名 .共享成员'的方法进行调用 , 《Henry 的 VB.NET 之旅 ( 三 )— 共享成员》中有论述。
strName = MyXMLDataSet.Tables(0).Rows(0).Item("name").ToString ' 从DataGrid中读取用户名信息。
从DataGrid1更新信息到XML文件代码:
Dim MyXmlDataSet As DataSet
MyXmlDataSet = CType(DataGrid1.DataSource, DataSet) '类型转换
MyXmlDataSet.WriteXml("regid.xml") '把信息写入XML文件
如果不用DataGrid控件,读写XML文件中特定信息可以更简单:
Dim xmlInfo As New XmlDocument
xmlInfo.Load("info.xml") '载入XML文件
Dim str As string=xmlInfo.Item("RegInfo").Item("name").InnerText '用“Item”可以逐级往下读数据
xmlInfo.Item("RegInfo").Item("pass").InnerText="MyPass"
xmlInfo.Save("info.xml") '保存信息到xml文件
2.用HttpWebResponse相关类GET和POST信息
用GET方式读取网页源代码:
Dim httpReq As System.Net.HttpWebRequest 'HttpWebRequest 类对 WebRequest 中定义的属性和方法提供支持',也对使用户能够直接与使用 HTTP 的服务器交互的附加属性和方法提供支持。
Dim httpResp As System.Net.HttpWebResponse ' HttpWebResponse 类用于生成发送 HTTP 请求和接收 HTTP 响'应的 HTTP 独立客户端应用程序。
Dim url as String="http://sunhai.tianyablog.com" '这是我的小站,有空来坐坐
Dim httpURL As New System.Uri(url)
httpReq = CType(WebRequest.Create(httpURL), HttpWebRequest)
httpReq.Method = "GET"
httpResp = CType(httpReq.GetResponse(), HttpWebResponse)
Dim reader As StreamReader = _
New StreamReader(httpResp.GetResponseStream, System.Text.Encoding.GetEncoding("GB2312")) '如是中文,要设置编码格式为“GB2312”。
Dim respHTML As String = reader.ReadToEnd() 'respHTML就是网页源代码
httpResp.Close()
向服务器POST信息:
Dim httpUrl2 As New System.Uri("http://sunhai.tianyablog.com?" & "name=1&pass=6") ' “&”号后面是'注册信息,改成你自己的
Dim req As HttpWebRequest
req = CType(WebRequest.Create(httpUrl2), HttpWebRequest)
req.Method = "POST"
req.ContentType = "application/x-www-form-urlencoded"
Dim bytesData() As Byte = System.Text.Encoding.ASCII.GetBytes("name=1&pass=6")
req.ContentLength = bytesData.Length
Dim postStream As Stream = req.GetRequestStream()
postStream.Write(bytesData, 0, bytesData.Length) '以上为向网络服务器POST信息
Dim res As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse)
Dim reader As StreamReader = _
New StreamReader(res.GetResponseStream, System.Text.Encoding.GetEncoding("GB2312"))
Dim respHTML As String = reader.ReadToEnd() 'respHTML为POST后网络服务器返回的信息
MsgBox(respHTML) '可用MsgBox查看返回的信息
res.Close()
3.用正则表达式从网页源代码中提取网址
得到网页源代后,我们可以对源代码进行处理,比如提取其中的链接,Email地址,图片地址,Flash等等。
Dim r As System.Text.RegularExpressions.Regex
Dim m As System.Text.RegularExpressions.MatchCollection
Dim respHtml As String = "http://www.NETsh.Net/subdomains/f_s_o.php?leibie=shangmao" '以这个地址举例
strRegex = "http://([/w]+/.)+[/w]+(/[/w.?]+)+leibie[=]{1}[/w]+" '用这个正则表达式可以提取上面地址。通用'的提取链接正则表达式为“http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?”。
r = New System.Text.RegularExpressions.Regex(strRegex, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
m = r.Matches(respHTML)
Dim i As Integer
For i = 0 To m.Count - 1
MsgBox(m(i).Value)
Next i