【发布时间】:2023-03-05 03:45:01
【问题描述】:
给定以下 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,在花括号中设置值的最佳方法是什么。到目前为止,我陷入了选择<block/> 元素内的三个<a /> 节点中的每一个的最佳方法上。这只是 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> 标签都会有一个优雅的衬线
【问题讨论】:
标签: c# .net xml linq-to-xml