Я имитирую веб-сервис, который возвращает XElement. Сервис делает свой XElement из базы данных. Чтобы иметь локальную тестовую службу, я создал XML-документ, который имитирует список XML-элементов. Я хочу выбрать и вернуть один из них через LINQ to XML.
Итак, у меня есть документ XML:
<?xml version="1.0" encoding="utf-8" ?>
<customers>
<customer ordercode="GCT/12345A">
<title>Miss</title>
<initials>A</initials>
<surname>Customer</surname>
...
</customer>
<customer ordercode="GCT/12346A">
<title>Mrs</title>
<initials>AN</initials>
<surname>Other</surname>
...
</customer>
</customers>
И используя LINQ, я хотел бы выбрать один из элементов Customer по атрибуту кода заказа. Мне просто нужно отключить InnerXML клиентского узла и вернуть его. Я попытался разобрать так:
XElement xcust = (XElement)(from c in xdocument.Descendants("customer")
where c.Attribute("ordercode") == strorder
return c).Single();
но это не сработало. Я также попробовал:
return new XElement("customer", [same LINQ Query]);
Полагаю, мне нужно как-то опросить запрос для InnerXML выбранного клиента, но я не уверен, как это сделать. Поскольку большинство людей просто разбирают XML прямо в требуемые объекты (что, поскольку я имитирую ответ от удаленного сервиса, я не могу сделать), я не могу найти много информации, просто возвращая необработанный элемент, так как я предполагаю, что немного использования крайнего случая.