我从Web服务中删除了一些XML
<data>
<request>
<type>LatLon</type>
<query>Lat 60.17 and Lon 24.94</query>
</request>
<time_zone>
<localtime>2014-11-30 19:56</localtime>
<utcOffset>2.0</utcOffset>
</time_zone>
<current_condition>
我想将本地时间部分拉入变量。
这是代码。
Public Function callWorldWeatherOnlineSearch(latitude, longitude) As Boolean
Using client As New WebClient
client.Encoding = Encoding.UTF8
Dim arr = client.DownloadString("https://api.worldweatheronline.com/free/v2/weather.ashx?q=" & latitude & "%2C" & longitude & "&format=xml&num_of_days=5&tp=24&showlocaltime=yes&key=KEY")
returnedXML = XElement.Parse(arr)
localTime = returnedXML...<data>...<time_zone>...<localTime>.Value
End Using
Return True
End Function
localTime变量不包含任何内容。
最烦人的是,当我在Visual Studio中编写代码时,轴符号正确(似乎!)遍历XML,所以我不知道我做错了什么?
如果我直接选择节点,它也不起作用..我确定之前有效吗?没有其他localTime节点。
localTime = returnedXML...<localtime>.Value
更新:
以下是该类的代码:
这是抓取.xsd文件和targetNamespace唯一引用
这里他们在解决方案资源管理器中彼此相邻
我刚注意到它是localTime所以我把它改成了本地时间,但仍无济于事。检查分配线上的抓斗。
下一行(应该在哪里进行分配)..大胖什么都没有。
这是当地人的窗口:
感谢您对此表示支持。我还能检查什么?
更新2:
所以这里什么也没发生,我真的不想进入Xpath。所以我想我会尝试将.xsd和天气类移到另一个文件夹中。
我还删除了对xsd的导入引用,想知道它是否会先搜索本地文件夹。
现在它正在拾取错误的XSD文件。这是一个线索,XSD是否必须在运行时匹配,并且可能存在一些问题。
更新3:
行。我把这一切都搞砸到一个单独的项目中,只是为了解决这个问题。
在尝试从XSD文件中删除引用之前,它仍然无法正常工作
我从.xsd和congo中删除了targetNamespace =“http://mynamespace.org/wwo”!
回到我的主要项目。
我像以前一样删除了targetNamespace =“http://mynamespace.org/wwo”,引用了.xsd和lo的import语句,看到我有数据!
intellisense也有效,我现在假设,因为它与班级在同一个文件夹中。
所以正是XSD参考文献搞砸了,尽管我根据之前的问题绝对引用了XSD。
Use two xsd schemas in visual studio 2012
指向谁能看到我哪里出错? ! Yippee无论如何都在工作。感谢
答案 0 :(得分:1)
您必须从查询中删除<data>
元素,因为它是根元素,所以它是隐含的。所以它是:
Dim xml = client.DownloadString(...)
Dim dataNode = XElement.Parse(xml)
localtime = dataNode...<time_zone>...<localTime>.Value
使用您发布的xml进行测试,运行正常。如果这仍然失败,那么您没有获得您期望的XML。使用调试器进行查看。