我試圖讀取從ASP.NET
的Web API的XML響應到DataSet
,這樣我可以把它綁定到一個DropDownList
。然而,當讀取響應,我會見了Data at the root level is invalid. Line 1, position 1.
DataSet.ReadXml - 在根級別的數據無效
Snipp:
WebRequest request = WebRequest.Create("EndPointURL");
request.Method = "GET";
WebResponse response = request.GetResponse();
DataSet ds = new DataSet();
using (StreamReader rdr = new StreamReader(response.GetResponseStream()))
{
ds.ReadXml(rdr); //EXCEPTION Data at the root level is invalid. Line 1, position 1.
}
XML響應的示例:
<ArrayOfPerson xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MySchema">
<Person>
<Address1 xmlns="http://schemas.datacontract.org/2004/07/ClassSchema">123 Main Street</Address1>
<Address2 xmlns="http://schemas.datacontract.org/2004/07/ClassSchema"">None</Address2>
...FOR BREVITY
</Person>
<Person>
..FOR BREVITY
</Person>
.
.
.
</ArrayOfPerson>
我已經成功地使這個調用API的另一端點,以便我有點難住。我在Line 1, position 1
看不到任何東西,看起來像一個無效的XML字符。什麼可能會拋出錯誤?
聽起來像在流的開始處可能有一個字節順序標記。 – dbc 2015-04-01 20:02:54
該流是否需要解碼?使用什麼字符編碼?對於調試,你可以將它加載到一個字符串中進行檢查嗎? – 2015-04-01 20:05:30
@dbc如何驗證字節順序標記確實是問題?如果是這樣,我需要在API級別還是在我的客戶代碼中解決它? – KidBatman 2015-04-01 20:53:33