C#XML到Linq元素名称不起作用

时间:2014-04-22 00:07:22

标签: c# xml linq

我正在尝试使用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;有关。我整天都在努力工作,而且我现在陷入困境。

0 个答案:

没有答案