使用C#中的XDocument读取xml中的多个字段时出现'System.NullReferenceException'?

时间:2014-01-20 20:27:51

标签: c# xml nullreferenceexception

我正在尝试使用XDocument读取XML文件,并且在运行程序时出现“System.NullReferenceException”错误。

Xml代码是

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed xml:base="http://pinpoint.microsoft.com/en-US/syndicate/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<title type="text">Partners</title>
<id>http://google.com/en-US/syndicate/Partners</id>
<updated>2014-01-20T12:29:25Z</updated>
 <link rel="self" title="Partners" href="Partners" />
 <entry>
 <id>http://google.com/en-US/syndicate/Partners('429')</id>
 <title type="text">Light Systems</title>
 <summary type="text">How may we help you? will help you address concerns like security and productivity that may be delaying your transition to a work anywhere, anytime workforce. Mac, Unix and Linux platforms. Whatever your size or need, we have an IT plan that will work for your business.
 </summary>
 <published>2009-07-27T14:23:39-07:00</published>
 <updated>2014-01-10T15:00:41-08:00</updated>
 <author>
  <name>Google Production</name>
  <uri>http://google.com/</uri>
  <email>calamity@google.com</email>
 </author>
 <link rel="edit" title="Partner" href="Partners('429')" />
 <link rel="http://google.com/ado/2007/08/dataservices/related/Links" type="application/atom+xml;type=feed" title="Links" href="Partners('429')/Links">
   <m:inline>
    <feed>
      <title type="text">Links</title>
      <id>http://google.com/en-US/syndicate/Partners('429')/Links</id>
      <updated>2014-01-20T12:29:25Z</updated>
      <link rel="self" title="Links" href="Partners('429')/Links" />
      <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerpage')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('partnerpage')" />
        <category term="Google.Commerce.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerpage</d:Type>
            <d:Description>Partner Page</d:Description>
            <d:Url>http://google.com/en-US/PartnerDetails.aspx?PartnerId=429&amp;wt.mc_id=ht43</d:Url>
          </m:properties>
        </content>
      </entry>
      <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerproductlist')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('partnerproductlist')" />
        <category term="Google.Commerce.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerproductlist</d:Type>
            <d:Description>Partner Product List</d:Description>
            <d:Url>http://google.com/en-US/PartnerDetails.aspx?partnerId=429&amp;CurrentTab=1&amp;wt.mc_id=ht43</d:Url>
          </m:properties>
        </content>
      </entry>
      <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerreviewpage')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('partnerreviewpage')" />
        <category term="Google.Commerce.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerreviewpage</d:Type>
            <d:Description>Partner Review Page</d:Description>
            <d:Url>http://google.com/en-US/PartnerDetails.aspx?partnerId=429&amp;CurrentTab=2&amp;wt.mc_id=ht43</d:Url>
          </m:properties>
        </content>
      </entry>
      <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerlocationpage')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('partnerlocationpage')" />
        <category term="Google.Commerce.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerlocationpage</d:Type>
            <d:Description>Partner Location Page</d:Description>
            <d:Url>http://google.com/en-US/PartnerDetails.aspx?partnerId=429&amp;CurrentTab=3&amp;wt.mc_id=ht43</d:Url>
          </m:properties>
        </content>
      </entry>
      <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerrfipage')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('partnerrfipage')" />
        <category term="Google.Commerce.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerrfipage</d:Type>
            <d:Description>Partner RFI Page</d:Description>
            <d:Url>http://google.microsoft.com/en-US/RFI.aspx?partnerId=429&amp;wt.mc_id=ht43</d:Url>
          </m:properties>
        </content>
      </entry>
      <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerwebsite')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('partnerwebsite')" />
        <category term="Google.Commerce.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerwebsite</d:Type>
            <d:Description>Website</d:Description>
            <d:Url>http://google.com/en-US/syndicate/relay/partner/website?id=429&amp;link=http%3a%2f%2fwww.systems.com&amp;TrackID=ht43</d:Url>
          </m:properties>
        </content>
      </entry>
      <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerlogo')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('partnerlogo')" />
        <category term="Microsoft.Commerce.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerlogo</d:Type>
            <d:Description>Logo</d:Description>
            <d:Url>http://www.systems.com/lan_logo.jpg</d:Url>
          </m:properties>
        </content>
      </entry>
    </feed>
  </m:inline>
</link>
<link rel="http://google.com/ado/2007/08/dataservices/related/Locations" type="application/atom+xml;type=feed" title="Locations" href="Partners('429')/Locations">
  <m:inline>
    <feed>
      <title type="text">Locations</title>
      <id>http://google.com/en-US/syndicate/Partners('429')/Locations</id>
      <updated>2014-01-20T12:29:25Z</updated>
      <link rel="self" title="Locations" href="Partners('429')/Locations" />
      <entry>
        <id>http://google.com/en-US/syndicate/Locations(1)</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Location" href="Locations(1)" />
        <category term="Google.Commerce.Marketplace.Syndicate.V2010_05.Location" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Id m:type="Edm">1</d:Id>
            <d:Address>Crossing Park, Suite E</d:Address>
            <d:City>Norwalk</d:City>
            <d:State>CT</d:State>
            <d:Country>USA</d:Country>
            <d:PostalCode>30071</d:PostalCode>
            <d:HQ m:type="Edm.Boolean">true</d:HQ>
            <d:Latitude m:type="Edm.Double">566</d:Latitude>
            <d:Longitude m:type="Edm.Double">-56.56</d:Longitude>
            <d:ContactName m:null="true" />
            <d:ContactPhoneNumber>+1 9175391100</d:ContactPhoneNumber>
            <d:ContactPhoneExtension m:null="true" />
            <d:ContactFaxNumber>+1 9175391100</d:ContactFaxNumber>
          </m:properties>
        </content>
      </entry>
      </feed>
    </m:inline>
    </link>
     <link rel="http://google.com/ado/2007/08/dataservices/related/Products" type="application/atom+xml;type=feed" title="Products" href="Partners('429')/Products" />
     <link rel="http://google.com/ado/2007/08/dataservices/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Partners('429')/Categories" />
    <category term="google.Marketplace.Syndicate.V2010_05.Partner" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
   <content type="application/xml">
     <m:properties>
    <d:View>v244</d:View>
    <d:Id>429</d:Id>
     <d:NativeId>630</d:NativeId>
     <d:Name>Systems</d:Name>
      <d:Description xml:space="preserve">will help </d:Description>
        <d:RatingAverage m:type="Edm.Decimal">555</d:RatingAverage>
       <d:RatingCount m:type="Edm.Int32">56</d:RatingCount>
      <d:Certification>Registered Member</d:Certification>
     <d:Search m:null="true" />
     <d:Loc m:null="true" />
     <d:Dist m:null="true" />
     <d:Cat m:null="true" />
   </m:properties>
  </content>
  <rights type="text">Copyright &amp;copy; 2011 Google Corporation</rights>
  </entry>
 <entry>
  <id>http://google.com/en-US/syndicate/Partners('4294')</id>
  <title type="text">Wholesale Intl.</title>
    <summary type="text">SQL Server </summary>
    <published>2009-07-21T14:23:50-07:00</published>
    <updated>2013-08-20T02:17:21-07:00</updated>
   <author>
   <name>google</name>
   <uri>http://google.com/</uri>
   <email>gmail.com</email>
   </author>
   <link rel="edit" title="Partner" href="Partners('4294')" />
   <link rel="http://google.com/ado/2007/08/dataservices/related/Links" type="application/atom+xml;type=feed" title="Links" href="Partners('4294')/Links">
     <m:inline>
    <feed>
      <title type="text">Links</title>
      <id>http://google.com/en-US/syndicate/Partners('4294')/Links</id>
      <updated>2014-01-20T12:29:25Z</updated>
      <link rel="self" title="Links" href="Partners('4294')/Links" />
      <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerpage')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('partnerpage')" />
        <category term="Google.Commerce.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerpage</d:Type>
            <d:Description>Page</d:Description>
            <d:Url>http://google.microsoft.com/en-US/PartnerDetails.aspx?PartnerId=4294&amp;wt.mc_id=ht43</d:Url>
          </m:properties>
          </content>
        </entry>
      <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerproductlist')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('partnerproductlist')" />
        <category term="Google.Commerce.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerproductlist</d:Type>
            <d:Description>Product List</d:Description>
            <d:Url>http://google.com/en-US/PartnerDetails.aspx?partnerId=4294&amp;CurrentTab=1&amp;wt.mc_id=ht43</d:Url>
          </m:properties>
        </content>
      </entry>
      <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerreviewpage')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('pinpointpartnerreviewpage')" />
        <category term="Google.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerreviewpage</d:Type>
            <d:Description>Review Page</d:Description>
            <d:Url>http://google.com/en-US/PartnerDetails.aspx?partnerId=4294&amp;CurrentTab=2&amp;wt.mc_id=ht43</d:Url>
          </m:properties>
        </content>
       </entry>
       <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerlocationpage')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('partnerlocationpage')" />
        <category term="google.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerlocationpage</d:Type>
            <d:Description>Location Page</d:Description>
            <d:Url>http://google.com/en-US/PartnerDetails.aspx?partnerId=4294&amp;CurrentTab=3&amp;wt.mc_id=ht43</d:Url>
          </m:properties>
        </content>
      </entry>
      <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerrfipage')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('partnerrfipage')" />
        <category term="Google.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerrfipage</d:Type>
            <d:Description>RFI Page</d:Description>
            <d:Url>http://pinpoint.microsoft.com/en-US/RFI.aspx?partnerId=4294&amp;wt.mc_id=ht43</d:Url>
          </m:properties>
        </content>
        </entry>
        <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerwebsite')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('partnerwebsite')" />
        <category term="google.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerwebsite</d:Type>
            <d:Description>Website</d:Description>
            <d:Url>http://google.com/en-US/syndicate/relay/partner/website?id=4294&amp;link=http%3a%2f%2fwww.software-intl.com&amp;TrackID=ht43</d:Url>
          </m:properties>
        </content>
      </entry>
      <entry>
        <id>http://google.com/en-US/syndicate/Links('partnerlogo')</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Link" href="Links('partnerlogo')" />
        <category term="Google.Commerce.Marketplace.Syndicate.V2010_05.Link" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Type>partnerlogo</d:Type>
            <d:Description>Logo</d:Description>
            <d:Url>http://www.software-intl.com/uploads/2012/04/swi-logo-web.png</d:Url>
          </m:properties>
        </content>
      </entry>
       </feed>
     </m:inline>
   </link>
   <link rel="http://google.com/ado/2007/08/dataservices/related/Locations" type="application/atom+xml;type=feed" title="Locations" href="Partners('4294')/Locations">
     <m:inline>
    <feed>
      <title type="text">Locations</title>
      <id>http://google.com/en-US/syndicate/Partners('4294')/Locations</id>
      <updated>2014-01-20T12:29:25Z</updated>
      <link rel="self" title="Locations" href="Partners('4294')/Locations" />
      <entry>
        <id>http://google.com/en-US/syndicate/Locations(1)</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Location" href="Locations(1)" />
        <category term="Google.Marketplace.Syndicate.V2010_05.Location" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Id m:type="Edm">1</d:Id>
            <d:Address>1114</d:Address>
            <d:City>Longt</d:City>
            <d:State>CT</d:State>
            <d:Country>USA</d:Country>
            <d:PostalCode>80455</d:PostalCode>
            <d:HQ m:type="Edm.Boolean">true</d:HQ>
            <d:Latitude m:type="Edm.Double">4455</d:Latitude>
            <d:Longitude m:type="Edm.Double">444</d:Longitude>
            <d:ContactName>xxxx</d:ContactName>
            <d:ContactPhoneNumber>+1 917000000</d:ContactPhoneNumber>
            <d:ContactPhoneExtension m:null="true" />
            <d:ContactFaxNumber>+1 917000000</d:ContactFaxNumber>
          </m:properties>
        </content>
      </entry>
      <entry>
        <id>http://google.com/en-US/syndicate/Locations(2)</id>
        <title type="text">
        </title>
        <updated>2014-01-20T12:29:25Z</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="Location" href="Locations(2)" />
        <category term="google.Marketplace.Syndicate.V2010_05.Location" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:properties>
            <d:Id m:type="Edm">2</d:Id>
            <d:Address>Suite 206</d:Address>
            <d:City>Moo</d:City>
            <d:State>CT</d:State>
            <d:Country>USA</d:Country>
            <d:PostalCode>88154</d:PostalCode>
            <d:HQ m:type="Edm.Boolean">false</d:HQ>
            <d:Latitude m:type="Edm.Double">32.01</d:Latitude>
            <d:Longitude m:type="Edm.Double">-333</d:Longitude>
            <d:ContactName>cddc</d:ContactName>
            <d:ContactPhoneNumber>1-917000000</d:ContactPhoneNumber>
            <d:ContactPhoneExtension>457</d:ContactPhoneExtension>
            <d:ContactFaxNumber>917000000</d:ContactFaxNumber>
          </m:properties>
        </content>
      </entry>
      </feed>
    </m:inline>
   </link>
    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Products" type="application/atom+xml;type=feed" title="Products" href="Partners('4294')/Products" />
   <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Partners('4294')/Categories" />
   <category term="Google.Commerce.Marketplace.Syndicate.V2010_05.Partner" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
   <content type="application/xml">
  <m:properties>
    <d:View>v45</d:View>
    <d:Id>4294</d:Id>
    <d:NativeId>7104</d:NativeId>
    <d:Name>Wholesale Intl.</d:Name>
    <d:Description> license or a comprehensive company-wide license agreement we can assist you to license your Microsoft software. </d:Description>
    <d:RatingAverage m:type="Edm.Decimal">455</d:RatingAverage>
    <d:RatingCount m:type="Edm.Int32">55</d:RatingCount>
    <d:Certification>hagh</d:Certification>
    <d:Search m:null="true" />
    <d:Loc m:null="true" />
    <d:Dist m:null="true" />
    <d:Cat m:null="true" />
  </m:properties>
   </content>
  <rights type="text">Copyright &amp;copy; 2011 Google Corporation</rights>
 </entry>
</feed>

用于读取XML文件的代码段

   try
        {
            // Another method
            var reader = new  StreamReader("C:/Users/Administrator/Downloads/direct.xml");

            var xmlDoc1 = XDocument.Load(reader);

            XNamespace atom = "http://www.w3.org/2005/Atom";
            XNamespace metadata = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";
            XNamespace dataservices = "http://schemas.microsoft.com/ado/2007/08/dataservices";

            var result = xmlDoc1.Root.Elements(atom + "entry")
                .Select(e => new
                {
                    Title = e.Element(atom + "title").Value,
                    Id = e.Element(atom + "id").Value,
                    Urls = e.Elements(atom + "link")
                        .Where(l => l.Element(metadata + "inline") != null)
                        .SelectMany(l => l.Element(metadata + "inline")
                            .Element(atom + "feed")
                            .Elements(atom + "entry")
                            .Select(e1 => e1.Element(atom + "content")
                                .Element(metadata + "properties")
                                .Element(dataservices + "Url").Value))
                });

            //foreach (var item in result)
            //{
            //  Debug.WriteLine("{0},{1},{2}", item.Title,item.Id,String.Join(",",item.Urls));

            //}
            foreach (var entry in result)
            {
                Debug.WriteLine("{0},{1},{2}", entry.Title, entry.Id, String.Concat(entry.Urls));
            }
        }
        catch (Exception e)
        {
            Debug.WriteLine("There is an error :" + e);
        }

错误如下 -      Microsoft.Pinpoint.Samples.exe中发生了'System.NullReferenceException'类型的第一次机会异常      有一个错误:System.NullReferenceException:对象引用未设置为对象的实例。

已发布完整的Xml以供参考。我正在使用XDocument读取XML文件并尝试获取信息

 1.entry
   --title
 2.entry
    --id
 3.entry 
   --link
    --inline
      --feed
        --entry
          --content
            --properties
             --Url

还尝试读取代码中未提及的字段“City”

   /entry/link/inline/feed/entry/content/properties/City

和NativeId为

   /entry/content/properties/NativeId

C#编程的新手,并尝试启动并运行程序。我想要的输出是

 title,id,Url,City,NativeId

例如

  Light Systems,http://google.com/en-US/syndicate/Partners('429'),http://google.com/en-US/PartnerDetails.aspx?PartnerId=429&amp;wt.mc_id=ht43,Norwalk,429,630
  Wholesale Intl.,http://google.com/en-US/syndicate/Partners('4294'),http://google.microsoft.com/en-US/PartnerDetails.aspx?PartnerId=4294&amp;wt.mc_id=ht43,Longt,4294,7104
  Wholesale Intl.,http://google.com/en-US/syndicate/Partners('4294'),http://google.microsoft.com/en-US/PartnerDetails.aspx?PartnerId=4294&amp;wt.mc_id=ht43,Moo,4294,7104

我已发布整个XMl文件和整个代码供参考。希望如此有用。

异常发生在 -

 e1.Element(atom + "content")
                                .Element(metadata + "properties")
                                .Element(dataservices + "Url").Value))

在'价值'之下它正在陈述

  NullreferenceException
  Object reference not set to an instance of an object.'

1 个答案:

答案 0 :(得分:3)

您收到异常,因为并非所有entry元素都包含content/properties/Url元素。

当元素不存在而不是(string)XElement时,使用XElement.Value代替null来获取NullReferenceException

var result = xmlDoc1.Root.Elements(atom + "entry")
    .Select(e => new
    {
        Title = (string)e.Element(atom + "title"),
        Id = (string)e.Element(atom + "id"),
        Urls = e.Elements(atom + "link")
            .Where(l => l.Element(metadata + "inline") != null)
            .SelectMany(l => l.Element(metadata + "inline")
                .Element(atom + "feed")
                .Elements(atom + "entry")
                .Select(e1 => (string)e1.Element(atom + "content")
                    .Element(metadata + "properties")
                    .Element(dataservices + "Url")))
    });

您可以添加其他Where(u => u != null)以从结果集合中删除这些null

var result = xmlDoc1.Root.Elements(atom + "entry")
    .Select(e => new
    {
        Title = (string)e.Element(atom + "title"),
        Id = (string)e.Element(atom + "id"),
        Urls = e.Elements(atom + "link")
            .Where(l => l.Element(metadata + "inline") != null)
            .SelectMany(l => l.Element(metadata + "inline")
                .Element(atom + "feed")
                .Elements(atom + "entry")
                .Select(e1 => (string)e1.Element(atom + "content")
                    .Element(metadata + "properties")
                    .Element(dataservices + "Url"))
                .Where(u => u != null))
    });