Xml VB.net轴表示法未拾取节点值

Xml VB.net轴表示法未拾取节点值,xml,vb.net,visual-studio-2013,Xml,Vb.net,Visual Studio 2013,我有一点XML来自Web服务 <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&

我有一点XML来自Web服务

<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>

拉特隆
Lat 60.17和Lon 24.94
2014-11-30 19:56
2
我想把本地时间部分拉到一个变量中

这是代码

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
公共函数调用WorldWeatherOnlineSearch(纬度、经度)作为布尔值
将客户端用作新的WebClient
client.Encoding=Encoding.UTF8
Dim arr=客户端下载字符串(“https://api.worldweatheronline.com/free/v2/weather.ashx?q=“&latitude&%2C”&longitude&&format=xml&num\u of_days=5&tp=24&showlocaltime=yes&key=key”)
returnedXML=XElement.Parse(arr)
localTime=returnedXML……….值
终端使用
返回真值
端函数
localTime变量不包含任何内容

最令人烦恼的是,当我在VisualStudio中编写代码时,axis符号正确地(似乎!)遍历XML,所以我不知道我做错了什么

如果我直接去节点也不行。。我肯定这以前奏效了?没有其他localTime节点

   localTime = returnedXML...<localtime>.Value
localTime=returnedXML…值
更新:

下面是该类的代码:

下面是对.xsd文件和targetNamespace唯一引用的抓取

在解决方案资源管理器中,它们彼此相邻

我只是注意到它是本地时间,所以我把它改成了本地时间,但还是没有用。在作业线处检查抓斗

下一行(分配应该发生的位置)。。大胖子什么都没有

这是本地窗口:

谢谢你在这件事上和我牵扯在一起。我还能查什么

更新2:

所以这里什么也没发生,我真的不想进入Xpath。所以我想我应该尝试将.xsd和weather类移动到另一个文件夹中

我还删除了对xsd的导入引用,不知道它是否会首先搜索本地文件夹

现在它拾取了错误的XSD文件。这是否是一个线索,XSD是否必须在运行时匹配,以及是否存在一些问题

更新3:

嗯。我把所有这些都放到了一个单独的项目中,只是为了解决这个问题

它仍然不起作用,直到我尝试从XSD文件中删除引用

我拉了targetNamespace=”http://mynamespace.org/wwo“从.xsd和刚果开始,它工作了

回到我的主要项目

我删除了targetNamespace=”http://mynamespace.org/wwo“和前面一样,imports语句引用了.xsd和lo,瞧,我有数据

我现在假设intellisense也可以工作,因为它与类位于同一文件夹中

所以是XSD引用把事情搞砸了,尽管根据前面的问题,我确实引用了XSD


指向任何能看到我哪里出错的人!!看来它还是管用的。谢谢

您必须从查询中删除
元素,这是隐含的,因为它是根元素。因此:

   Dim xml = client.DownloadString(...)
   Dim dataNode = XElement.Parse(xml)
   localtime = dataNode...<time_zone>...<localTime>.Value
Dim xml=client.DownloadString(…)
Dim dataNode=XElement.Parse(xml)
localtime=dataNode…….值

使用您发布的xml进行测试,效果良好。如果这仍然失败,那么您就没有得到预期的XML。使用调试器查看一下。

我认为“数据”一词应该是no?当我使用您的代码时,它抛出了一个“system.data是一个名称空间…”错误。我确实试过直接短切到上面的节点。嗯,你是在使用我展示的Dim关键字吗?随便你怎么称呼它,我只是不太在乎你选择的标识符名称。我的水晶球说你有另一个变量名为“localtime”。可能在您声明“callWorldWeatherOnlineSearch”的位置附近。有一个类的属性调用wwoManager类。我把它删掉了。并尝试重命名'Dim localtime1=dataNode…….Value'。但你的球今天一定是阴天:(我现在输入了'localTime=returnedXML…….Value',但里面仍然没有任何内容。该死的东西。还有什么可能?连接到气象服务器需要凭据吗?我在使用代码时得到了403禁止。我宁愿使用实际返回的字符串而不是伪造的字符串来测试东西。@Proputix你肯定不会是sug我是在为API发布私钥吗?不是,我是在问,因为a)我看不到提交的令牌,b)给定URL,它看起来可能是免费版本。顺便说一句,不需要使用部分XML片段进行复制,也不需要从中反向设计xsd。