正在解析缺少预期子节点的 XML

Parsing XML that is missing expected child nodes

我正在使用 LINQ 解析一个 XML 片段到 XML,我发现我正在 selecting 的节点之一缺少我期望的子节点。

例子XML

<CustomerList>
  <Customer>
    <LastName>Smith</LastName>
    <FirstName>Todd</FirstName>
  </Customer>
  <Customer>
    <LastName>Jones</LastName>
    <FirstName>Fred</FirstName>
  </Customer>
  <Customer>Tom Jones</Customer> <!-- Missing child nodes -->
</CustomerList>

当我尝试提取 LastNameFirstName 值时,出现错误 Object reference not set to an instance of an object.

使用 LINQ

解析 XML
XDocument xml = XDocument.Parse(xmlResponse);
List<CustomerModel> nodeList = xml.Descendants("CustomerList")
                          .Descendants("Customer")
                          .Select(x => new CustomerModel
                          {
                            LastName = x.Element("LastName").Value,
                            FirstName = x.Element("FirstName").Value,
                          }).ToList<CustomerModel>();

<Customer> 节点没有 <LastName><FirstName> 节点的情况下,我该如何跳过它们或者更好,甚至 select第一名?

我的建议是:

XDocument xml = XDocument.Parse(xmlResponse);
List<CustomerModel> nodeList = xml.Descendants("CustomerList")
                      .Descendants("Customer")
                      .Where(x => x.Element("LastName") != null && x.Element("FirstName") != null)
                      .Select(x => new CustomerModel
                      {
                        LastName = x.Element("LastName").Value,
                        FirstName = x.Element("FirstName").Value,
                      }).ToList<CustomerModel>();