С учетом следующего 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>
будет один элегантный вкладыш