做一个winForm程序,知道目标网页的url(类似“http://www.aaa.com.cn/datasource/datasource.aspx?username=张三”的形式),用IE浏览器打开之,是以xml格式显示的(类似下面的形式)。我想获得<Detail>元素的值,即:“张三,北京市人,1982年出生,现任职于某某公司.Net软件工程师一职”。怎么办呢?
<?xml version="1.0" encoding="GB18030" ?>
- <ct:UpdateDetails Date="20050601 08:00" xmlns:ct="http://www.aaa.com.cn/">
- <!-- This document contains user update information.
-->
- <details title="张三">
- <Content>
<datasource>张三的信息</datasource>
<Detail>张三,北京市人,1982年出生,现任职于某某公司.Net软件工程师一职</Detail>
</details>
</ct:UpdateDetails>
------------------------
我想用WebRequest去请求、用HttpWebResponse响应、用StreamReader来把整个xml格式的内容读到一个textBox1控件中,然后对textBox1控件中的文本检索,获得<Detail>元素的值。但是textBox1控件中显示出现乱码,而且当xml格式的内容很多时,读不完。请高手们帮助一下,最好给一个完整的例子。谢谢了先!
<?xml version="1.0" encoding="GB18030" ?>
- <ct:UpdateDetails Date="20050601 08:00" xmlns:ct="http://www.aaa.com.cn/">
- <!-- This document contains user update information.
-->
- <details title="张三">
- <Content>
<datasource>张三的信息</datasource>
<Detail>张三,北京市人,1982年出生,现任职于某某公司.Net软件工程师一职</Detail>
</details>
</ct:UpdateDetails>
------------------------
我想用WebRequest去请求、用HttpWebResponse响应、用StreamReader来把整个xml格式的内容读到一个textBox1控件中,然后对textBox1控件中的文本检索,获得<Detail>元素的值。但是textBox1控件中显示出现乱码,而且当xml格式的内容很多时,读不完。请高手们帮助一下,最好给一个完整的例子。谢谢了先!
我现在正用它呢!!!
前两天做的短信接口跟你的情况一样~
算了。。
我把代码给你吧~~若使用Document属性,必须判断文档是否加载成功,触发webbrowser的DocumentCompleted事件
string url = "http://www.aaa.com.cn/datasource/datasource.aspx?username=张三";
//发送信息
webBrowser1.Navigate(url);
//判断webBrowser的加载是否完成
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
在它的webBrowser1_DocumentCompleted的事件中写如下代码:
if (e.Url.Equals(webBrowser1.Document.Url))
{
flag = true;//此变量用来判断是否加载完毕
if (flag == true)
{
try
{
//填充Document
HtmlDocument hdoc = webBrowser1.Document;
//查找标记为HTML的元素集合
HtmlElementCollection hec = hdoc.GetElementsByTagName("HTML");
//遍历元素集合
foreach (HtmlElement he in hec)
{
string str = he.InnerText.Trim();
//查找服务器返回结果(我在偷懒,使用的字符串截取;不管怎么样,结果是对的)
if (str.Substring(70, 1) == "0")
{
cmd = new MySqlCommand("update sms2 set send_flag=1 where sms_id=" + Convert.ToInt32(smsid) + "", con);
cmd.ExecuteNonQuery();
MessageBox.Show("已发送");
}
else
{
MessageBox.Show("错误");
}
}
}
catch (Exception ex)
{
label1.Text = ex.ToString();
} }代码有些乱,慢慢研究吧~~我把XML弄成字符串给读出来了
然后结贴,谢谢
e.url 是这种事件参数特有的方法吗?还有那些会有 ?