已有23人关注
《范例完全自学手册》100例学习问题
发表在VB答疑区 2009-12-21
是否精华
版块置顶:
例题里提供的网站内容太少请老师教教如何从下面的网站
http://www.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather?theUserID=&theCityCode=738
提取天气信息谢谢老师
分享到:
精彩评论 6
学分: LV1
2009-12-21
沙发
您好:
  这个程序其实主要是实现获取网页源码的程序,获取网页源码后,将源码放在变量Weatherpage中,然后从这个变量中提取天气信息。
提取信息主要就是处理字符串的操作了。你给的那个网页源码中,您可以用“气温”做标志字符,
例如nhendc=instr(1,weatherpage,"气温"),这样获取这个标志字符在源码中的位置,然后根据后面的内容把天气的信息提取出来,主要就是字符串的操作了。
CSDN00008
学分:0 LV1
2009-12-22
板凳
这是网站的连接“http://www.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather?theUserID=&theCityCode=738”
我想提取这些字符“12月22日 多云转阵雪”“-16℃/-6℃”“西风微风”“12月23日 晴”“-17℃/-5℃”而代码里这些字符都是随时间变化的变量请老师指点一下怎么提取

<string>12月22日 多云转阵雪</string> 
  <string>-16℃/-6℃</string> 
  <string>西风微风</string> 
  <string>1.gif</string> 
  <string>13.gif</string> 
  <string>12月23日 晴</string> 
  <string>-17℃/-5℃</string> 
  <string>西风微风</string> 
  <string>0.gif</string> 
  <string>0.gif</string> 
  <string>12月24日 多云转中雪</string> 
  <string>-13℃/-4℃</string> 
  <string>西南风微风转西风微风</string> 
  <string>1.gif</string> 
  <string>15.gif</string> 
  <string>12月25日 中到大雪转阵雪</string> 
  <string>-21℃/-7℃</string> 
  <string>北风3-4级</string> 
  <string>27.gif</string> 
  <string>13.gif</string> 
  <string>12月26日 多云</string> 
  <string>-23℃/-13℃</string> 
  <string>北风微风转东北风微风</string> 
  <string>1.gif</string> 
  <string>1.gif</string> 
  </ArrayOfString>
Lemon
学分:0 LV1
2009-12-23
地板
您好!

还是字符串处理的问题。

首先需要获取到网页的源码,例如 你帖上来的那些。
然后 找到你需要获取的内容。一般情况,这个网页的格式应该是固定,即使有些文字改变了,但是HTML语言的格式是固定的。
这里您可以 首先利用instr查找<string>出现的位置,然后在从这个位置开始查找</string> 第一次出现的位置,然后利用right和Left函数获取出<string> 和</string> 之间的文字信息。也就是“12月22日 多云转阵雪”的内容。这里需要注意的是,这里面的<string> 和</string> 是成对的

其他的内容获取以此类推
CSDN00008
学分:0 LV1
2009-12-25
4L

下面是完整的代码:这么多<string>怎么找到我要提取的“今日天气实况:气温:-14.8℃;风向/风力:东南风 小于3级;湿度:80%;气压:980.3hPa”我想把这写天气信息分别提取
<?xml version="1.0" encoding="utf-8" ?> 
- <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://WebXml.com.cn/">
  <string>吉林 白山</string> 
  <string>临江</string> 
  <string>738</string> 
  <string>2009/12/22 09:49:00</string> 
  <string>今日天气实况:气温:-14.8℃;风向/风力:东南风 小于3级;湿度:80%;气压:980.3hPa</string> 
  <string>空气质量:中;紫外线强度:最弱</string> 
  <string>穿衣指数:天气寒冷,建议着厚羽绒服、毛皮大衣加厚毛衣等隆冬服装。年老体弱者尤其要注意保暖防冻。感冒指数:昼夜温差很大,易发生感冒,请注意适当增减衣服,加强自我防护避免感冒。晨练指数:天气晴朗,空气清新,是您晨练的大好时机,建议不同年龄段的人们积极参加户外健身活动。洗车指数:适宜洗车,未来持续两天无雨天气较好,适合擦洗汽车,蓝天白云、风和日丽将伴您的车子连日洁净。晾晒指数:天气晴朗,午后温暖的阳光仍能满足你驱潮消霉杀菌的晾晒需求。旅游指数:白云飘飘,同时又有微风伴您一路同行。但温度低,外出旅游请注意防寒保暖,可选择雪上项目,这也不错。路况指数:晴天,虽然天气有点凉,但其它条件适宜,路面比较干燥,路况较好。舒适度指数:白天天气晴好,但仍会使您感觉偏冷,不很舒适,请注意适时添加衣物,以防感冒。</string> 
  <string>12月22日 多云转阵雪</string> 
  <string>-16℃/-6℃</string> 
  <string>西风微风</string> 
  <string>1.gif</string> 
  <string>13.gif</string> 
  <string>12月23日 晴</string> 
  <string>-17℃/-5℃</string> 
  <string>西风微风</string> 
  <string>0.gif</string> 
  <string>0.gif</string> 
  <string>12月24日 多云转中雪</string> 
  <string>-13℃/-4℃</string> 
  <string>西南风微风转西风微风</string> 
  <string>1.gif</string> 
  <string>15.gif</string> 
  <string>12月25日 中到大雪转阵雪</string> 
  <string>-21℃/-7℃</string> 
  <string>北风3-4级</string> 
  <string>27.gif</string> 
  <string>13.gif</string> 
  <string>12月26日 多云</string> 
  <string>-23℃/-13℃</string> 
  <string>北风微风转东北风微风</string> 
  <string>1.gif</string> 
  <string>1.gif</string> 
  </ArrayOfString> 
 
CSDN00008
学分:0 LV1
2009-12-27
5L
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim weatherpage As String
    Dim city As String
    Dim weather As String
    Dim temperature As String
    Dim nhBegin As Long
    Dim nhEndc As Long
    Dim nhEndw As Long
    Dim nhEndt As Long
    '判断是否能打开网页
    If WebBrowser1.LocationName = "找不到服务器" Then
        Label1.Caption = ""
        MsgBox "无法打开网页进行获取", 48, "信息提示"
        Exit Sub
    End If
     '获取网页内容
    weatherpage = WebBrowser1.Document.documentElement.innerHTML
    nhBegin = InStr(1, weatherpage, "<string>")          '获取标志<string>的字符所在位置
    nhEndc = InStr(1, weatherpage, "</string>")          '获取标志</string>的字符所在位置
    Text1.Text = Mid(weatherpage, nhBegin + 8, nhEndc - nhBegin + 8)



结果获取到的是:
<STYLE>

而不是: 
<string>吉林 白山</string> 中的地名:吉林 白山
CSDN00008
学分:0 LV1
2009-12-27
6L
这样写虽然可以获得想要的地址“吉林 白山”但是因为 <string>吉林 白山</string> 
中间的地名是个变量所以地名变化以后就取不到正确的地址了
nhBegin = InStr(1, weatherpage, "吉林")          '获取标志地名的字符所在位置
Text1.Text = Mid(weatherpage, nhBegin, 5)
还是请老师指教一下怎么根据<string>   </string> 获取中间的地名
还有后边出现的多个<string>   </string>中间的气象信息
谢谢老师了
首页上一页 1 下一页尾页 6 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照