下载的XML没有组织

时间:2014-11-28 06:17:12

标签: xml json vb.net

当我通过Chrome或资源管理器发送以下请求时,我会从服务器收到一个整齐的XML,一切正常。

http://et.water.ca.gov/api/data?appKey=e5eef4c3-7d8b-48f9-8152-9cad1dbe85c4&targets=15&startDate=2013-10-1&endDate=2013-10-3&dataItems=hly-air-tmp

这是XML的第一行:

<et-xml xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<data><provider name="cimis" type="station" owner="water.ca.gov">
<record date="2013-10-01" julian="274" hour="0100" station="15" standard="english" zip-code="93246, 93245, 93234, 93202, 93266" scope="hourly">
  <hly-air-tmp qc=" " unit="(F)">63.2</hly-air-tmp>
</record>
<record date="2013-10-01" julian="274" hour="0200" station="15" standard="english" zip-code="93246, 93245, 93234, 93202, 93266" scope="hourly">
  <hly-air-tmp qc=" " unit="(F)">63.8</hly-air-tmp>
</record>
<record date="2013-10-01" julian="274" hour="0300" station="15" standard="english" zip-code="93246, 93245, 93234, 93202, 93266" scope="hourly">
  <hly-air-tmp qc=" " unit="(F)">64.1</hly-air-tmp>
</record>
<record date="2013-10-01" julian="274" hour="0400" station="15" standard="english" zip-code="93246, 93245, 93234, 93202, 93266" scope="hourly">
  <hly-air-tmp qc=" " unit="(F)">62.7</hly-air-tmp>
</record>
<record date="2013-10-01" julian="274" hour="050

由于某些原因,我需要使用我的VB.Net应用程序执行此过程。我尝试使用以下代码下载XML文件:

Dim myWebClient As New WebClient()

myWebClient.DownloadFile("http://et.water.ca.gov/api/data?appKey=e5eef4c3-7d8b-48f9-8152-9cad1dbe85c4&targets=15&startDate=2013-10-1&endDate=2013-10-3&dataItems=hly-air-tmp", fileName)

确实下载了该文件。下载的文件仍包含我期望的数据,但文件的格式已更改,浏览器无法将其作为XML文件加载。

我发送下载文件的第一行:

  

{&#34;数据&#34; {&#34;商&#34;:[{&#34;名称&#34;:&#34; cimis&#34;&#34;类型&#34 ;:&#34;台&#34;&#34;所有者&#34;:&#34; water.ca.gov&#34;&#34;记录&#34;:[{&#34;日期&# 34;:&#34; 2013年10月1日和#34;&#34;儒略&#34;:&#34; 274&#34;&#34;小时&#34;:&#34; 0100&#34 ;,&#34;站&#34;:&#34; 15&#34;&#34;标准&#34;:&#34;英语&#34;&#34;邮编&#34;:&#34 ; 93246,   93245,93234,93202,   93266&#34;&#34;适用范围&#34;:&#34;每小时&#34;&#34; HlyAirTmp&#34; {&#34;值&#34;:&#34; 63.2&#34 ;,&#34; QC&#34;:&#34;   &#34;&#34;单元&#34;:&#34;(F)&#34;}},{&#34;日期&#34;:&#34; 2013年10月1日&#34; &#34;儒略&#34;:&#34; 274&#34;&#34;小时&#34;:&#34; 0200&#34;&#34;站&#34;:&#34; 15&#34;&#34;标准&#34;:&#34;英语&#34;&#34;邮编&#34;:&#34; 93246,   93245,93234,93202,   93266&#34;&#34;适用范围&#34;:&#34;每小时&#34;&#34; HlyAirTmp&#34; {&#34;值&#34;:&#34; 63.8&#34 ;,&#34; QC&#34;:&#34;   &#34;&#34;单元&#34;:&#34;(F)&#34;}},{&#34;日期&#34;:&#34; 2013年10月1日&#34; &#34;儒略&#34;:&#34; 274&#34;&#34;小时&#34;:&#34; 0300&#34;&#34;站&#34;:&#34; 15&#34;&#34;标准&#34;:&#34;英语&#34;&#34;邮编&#34;:&#34; 93246,   93245,93234,93202,   93266&#34;&#34;适用范围&#34;:&#34;每小时&#34;&#34; HlyAirTmp&#34; {&#34;值&#34;:&#34; 64.1&#34 ;,&#34; QC&#34;:&#34;   &#34;&#34;单元&#34;:&#34;(F)&#34;}},{&#34;日期&#34;:&#34; 2013年10月1日&#34; &#34;儒略&#34;:&#34; 274&#34;&#34;小时&#34;:&#34; 0400&#34;&#34;站&#34;:&#34; 15&#34;&#34;标准&#34;:&#34;英语&#34;&#34;邮编&#34;:&#34; 93246,   93245,93234,93202,   93266&#34;&#34;适用范围&#34;:&#34;每小时&#34;&#34; HlyAirTmp&#34; {&#34;值&#34;:&#34; 62.7&#34 ;,&#34; QC&#34;:&#34;   &#34;&#34;单元&#34;:&#34;(F)&#34;}},{&#34;日期&#34;:&#34; 2013年10月1日&#34; &#34;儒略&#34;:&#34; 274&#34;&#34;小时&#34;:&#34; 0500&#34;&#34;站&#34;:&#34; 15&#34;&#34;标准&#34;:&#34;英语&#34;&#34;邮编&#34;:&#34; 93246,   93245,93234,93202,9

我使用以下代码,它可以解析XML,解析新文件:

Dim reader As XmlTextReader
reader = New XmlTextReader("C:\Users\lenovo.pc\Desktop\CIMIS\bin\Debug\ms-banner.xml")
reader.ReadToFollowing("hly-air-tmp")

但它返回以下错误:

Data at the root level is invalid. Line 1, position 1.

有没有办法可以下载格式正确的文件?如果没有,我如何将下载的文件转换为格式良好的XML(它包含我需要的所有数据)。

1 个答案:

答案 0 :(得分:0)

该文件中的数据采用JSON格式,而不是XML格式。