2017-08-22 11 views
0

xmlファイルから緯度(lat)値と経度(lon)値の両方を取得しようとしています。C#xmlファイルから値を取得する

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(); 

しかし、コードは、この次のエラーMSGを与えます。

Error: '>' is an unexpected token. The expected token is '='. Line 2, position 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> 

どのような提案ですか?

+3

うん、 ''が間違っています。ちょうど ''であるべきです。あなたの ''タグと同じです。終了タグに属性を含めないでください。 – itsme86

+0

はい、私はその生成されたスローWebリクエストからフォーマットを変更することはできません。 – Ayman

+0

あなたができることは、 'xmlString'を前処理することです。つまり、

答えて

0

まず、XMLを修正しますが、修正できない場合は、HTML Agility Packを使用して誤った形式のXMLを取得してください。これは、Webスクラップし、ひどく形成されたXMLを処理するのにはかなり良い方法です。

関連する問題