Учитывая следующий XML-шаблон:
<Request module="CRM" call="list_service_features" id="{ID}">
<block name="auth">
<a name="username" format="text">{USERNAME}</a>
<a name="password" format="password">{PASSWORD}</a>
<a name="client-id" format="counting">{CLIENT-ID}</a>
</block>
<a name="service-id" format="counting">{SERVICE-ID}</a>
</Request>
Используя XDocument, как лучше всего установить значения в фигурных скобках. Я дошел до сих пор, но застрял на наилучшем способе выбора каждого из трех узлов <a />
внутри элемента <block/>
. Это всего лишь небольшой фрагмент XML, в других может быть до 20 элементов <a name="..."></a>
.
То, как построен XML, не было моим творением, это то, что мы должны отправить в «веб-службу» нашего поставщика... прежде чем кто-нибудь посмеется над атрибутом format="counting" :)
@David - спасибо за ответ, спасибо. Я как бы надеялся, что это будет немного более элегантно, вроде как:
List<XElement> e = doc.Descendants("a").ToList();
e.Where(x => x.Attributes("name") == "username").Single().Value = "abc";
e.Where(x => x.Attributes("name") == "password").Single().Value = "abc";
Очевидно, что приведенный выше код не работает, но я подумал, что для каждого из тегов <a>
будет элегантная строчка.