我正在尝试使用C#使用REST Web服务当我尝试获取XML字符串中各个数据点的值时,我收到错误。
我回来的XML看起来像这样:
<queryResult xmlns="http://www.example.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<records xsi:type="sObject">
<type>Account</type>
<Id>0013000000LKOUMAA5</Id>
<Name>Example Inc.</Name>
<BillingCountry>US</BillingCountry>
<Website>http://www.example.com</Website>
<CreatedById>00530000000i1jAAAQ</CreatedById>
<CreatedDate>2008-02-04T14:51:23.000Z</CreatedDate>
<LastModifiedDate>2014-04-02T18:10:32.000Z</LastModifiedDate>
<LastModifiedById>00580000005pTwAAAU</LastModifiedById>
</records>
</queryResult>
使用以下代码,我能够解析XML字符串,但它不会返回&#34; Name&#34;的值。元素,它返回以下错误:&#34;对象引用未设置为对象的实例。&#34;
WebResponse response = request.GetResponse();
XmlReader reader = XmlReader.Create(response.GetResponseStream());
XDoc = XDocument.Load(reader);
XNamespace ns = "http://www.example.com";
IEnumerable<XElement> records = from el in XDoc.Descendants(ns + "records")
select el;
foreach (XElement record in records)
{
Console.WriteLine("Website: " + record.Element(ns + "Website").Value); //This line works
Console.WriteLine("Name: " + record.Element(ns + "Name").Value); //Returns an error
}
我认为它与元素名称&#34; Name&#34;有关。我整天都在努力工作,而且我现在陷入困境。