在XDocument中定位和设置元素值的最有效方法是什么?
给出以下XML“模板”:
{USERNAME} {PASSWORD} {CLIENT-ID} {SERVICE-ID}
使用XDocument,在花括号中设置值的最佳方法是什么。 到目前为止,我已经陷入了选择元素中三个
节点中每个节点的最佳方法。 这只是XML的一小部分,其他可能最多包含20个
元素。
构建XML的方式不是我的创建,而是我们必须发送给供应商的“网络服务”……在任何人对格式=“计数”属性笑之前:)
@David – 为响应欢呼,赞赏。 我有点希望它有点优雅,有点像:
List 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";
显然,上面的代码不起作用,但我认为每个标签都会有一个优雅的衬垫
这样做适合你吗? 好旧的后裔财产。
string xmlInput = ...; XDocument myDoc = XDocument.Parse(xmlInput); // List someElements = myDoc.Descendants("a").ToList(); someElements.ForEach(x => x.Value = "Foo"); // Console.WriteLine(myDoc);
嗯,我看到你有一个属性。 也可以这样做:
string xmlInput = //... XDocument myDoc = XDocument.Parse(xmlInput); // List someText = myDoc.Descendants() .Nodes() .OfType () .Where(x => x.Value.StartsWith("{") && x.Value.EndsWith("}")) .ToList(); // List someAttributes = myDoc.Descendants() .Attributes() .Where(x => x.Value.StartsWith("{") && x.Value.EndsWith("}")) .ToList(); // someText.ForEach(x => x.Value = "Foo"); someAttributes.ForEach(x => x.Value = "Bar"); // Console.WriteLine(myDoc);
啊,现在有了你所期待的,我会让它发挥作用:
上述就是C#学习教程:在XDocument中定位和设置元素值的最有效方法是什么?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)
List e = myDoc.Descendants("a").ToList(); e.Where(x => x.Attribute("name").Value == "username").Single().Value = "abc"; e.Where(x => x.Attribute("name").Value == "password").Single().Value = "abc";
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。
如若转载,请注明出处:https://www.ctvol.com/cdevelopment/1034988.html