次の 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 />
内の 3 つのノードのそれぞれを選択する最善の方法に行き詰まりました。<block/>
これは XML のほんの一部であり、最大 20 個<a name="..."></a>
の要素を持つものもあります。
XML の構築方法は私の創作ではありません。これは、サプライヤの「Web サービス」に送信する必要があるものです...誰かが 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>
上記のコードは明らかに機能しませんが、タグごとにエレガントなワンライナーがあると思いました