我试图读取从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