I need to list lineitems inside every inquiry. Below I only get inquiry' values but not list of it's lineitems.
XElement myElement = XElement.Load("Inquiries.xml");
var query = from s in myElement.Elements("Inquiry")
select new
{
InquiryId = (int)s.Element("InquiryId"),
FirstName = (string)s.Element("FirstName"),
LastName = (string)s.Element("LastName"),
LineItems = from l in myElement.Elements("Inquiry").Elements("LineItems")
select new
{
Quantity = (int)l.Attribute("quantity"),
PartNumber = (string)l.Attribute("partnumber")
}
};
var result = query.ToList();
XML:
<Inquiries>
<Inquiry>
<InquiryId>0</InquiryId>
<FirstName>John</FirstName>
<LastName>Smith</LastName>
<LineItems>
<LineItem quantity="2" partnumber="abc"></LineItem>
<LineItem quantity="3" partnumber="abc"></LineItem>
<LineItem quantity="6" partnumber="abc"></LineItem>
</LineItems>
</Inquiry>
<Inquiry>
<InquiryId>1</InquiryId>
<FirstName>Epic</FirstName>
<LastName>Beardman</LastName>
<LineItems>
<LineItem quantity="2" partnumber="abc"></LineItem>
<LineItem quantity="3" partnumber="abc"></LineItem>
<LineItem quantity="6" partnumber="abc"></LineItem>
</LineItems>
</Inquiry>
</Inquiries>
XElement myElement = XElement.Load("Inquiries.xml");
var query = from s in myElement.Elements("Inquiry")
select new
{
InquiryId = Convert.ToInt32(s.Element("InquiryId").Value),
FirstName = s.Element("FirstName").Value,
LastName = s.Element("LastName").Value,
LineItems = (from l in s.Element("LineItems").Elements("LineItem")
select new
{
Quantity = Convert.ToInt32(l.Attribute("quantity").Value),
PartNumber = l.Attribute("partnumber").Value
}).ToList()
};
var result = query.ToList();