我的XML文件:选择XML节点使用LINQ to XML
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfCustomer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Customer>
<CustomerId>1f323c97-2015-4a3d-9956-a93115c272ea</CustomerId>
<FirstName>Aria</FirstName>
<LastName>Stark</LastName>
<DOB>1999-01-01T00:00:00</DOB>
</Customer>
<Customer>
<CustomerId>c9c326c2-1e27-440b-9b25-c79b1d9c80ed</CustomerId>
<FirstName>John</FirstName>
<LastName>Snow</LastName>
<DOB>1983-01-01T00:00:00</DOB>
</Customer>
</ArrayOfCustomer>
我尝试:
XElement toEdit =
(XElement)doc.Descendants("ArrayOfCustomer")
.Descendants("Customer")
.Where(x => Guid.Parse((x.Descendants("CustomerId") as XElement).Value) == customer.CustomerId)
.First<XElement>();
,这将引发以下异常:
Object reference not set to an instance of an object.
1)不x
一个XElement
?
2)是这样的一个适当的地方拉姆达用于选择一个XML节点?
3),当然根据CustomerId
你会如何找到这个节点?
我第一次例外: 无法转换类型“WhereEnumerableIterator'1的对象[系统.Xml.Linq.XElement]'键入'System.Xml.Linq.XElement'。 这是因为我试图从IEnumrable投射到一个单一的XElement,我增加第一()扩展到它。 现在它只是无法将x作为XElement。 –
2012-04-10 03:55:24