簡體   English   中英

C#從xml文件獲取值

[英]C# Getting values from xml file

我正在嘗試從xml文件中獲取緯度(lat)和經度(lon)值。

XML文件是使用以下代碼通過Web請求生成的。

var request = WebRequest.Create("#") as HttpWebRequest;
request.Credentials = new System.Net.NetworkCredential("#", "#");
var response = request.GetResponse();
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
var result = readStream.ReadToEnd();
String xmlString = result;
System.Xml.XmlTextReader reader = new System.Xml.XmlTextReader(new System.IO.StringReader(xmlString));
reader.Read();
System.Data.DataSet ds = new System.Data.DataSet();
ds.ReadXml(reader, System.Data.XmlReadMode.Auto);
DataTable dt = ds.Tables[0];
lbllat.Text = dt.Rows[0][5].ToString();//for example 
lbllong.Text = dt.Rows[0][6].ToString();

但是代碼給出了以下錯誤消息。

錯誤:“>”是意外​​令牌。 預期令牌為“ =”。 第2行,位置483

主要是因為XML標記不接受空格而發生錯誤。

生成的xml文件格式。

<?xml version="1.0"?>
<root>
  <code>0</code>
  <msg>OK</msg>
  <data>
    <agentid>1</agentid>
    <imei>3224</imei>
    <typeid>2</typeid>
    <type>Truck</type>
    <vehiclenumber>12121</vehiclenumber>
    <folder>folder1</folder>
    <created_time>1493813160</created_time>
    <current_mileage>4232</current_mileage>
    <status>
      <active>1</active>
      <speed>0</speed>
      <direction>303</direction>
      <lat>3.79092</lat>
      <lon>69.51279</lon>
      <alt>1</alt>
      <satsinview>18</satsinview>
      <unixtimestamp>1503389638</unixtimestamp>
      <sensors>
        <Ignition sensor="">Off</Ignition sensor><External power="" supply="">On</External power supply>
      </sensors>
    </status>
  </data>
</root>

有什么建議么 ?

首先,修復XML,但如果不能,則使用HTML Agility Pack檢索格式錯誤的XML。 對於網絡抓取和處理格式錯誤的XML來說,這非常好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM