我有一个包含许多元素/子元素等的 XDocument,我想将每个元素的值设为大写。
doc.Descendants().ToList().ForEach(f => f.Value = f.Value.ToUpper());
不起作用,因为它将所有值(如上)连接到父元素中。
最佳答案
LINQ 表达式通常不应修改源的值。它们应该只返回新值(将它们视为过滤器......你放入一些东西,就会出现不同的东西)
foreach (var desc in doc.Descendants()) {
var nodes = desc.Nodes().Where(p => p.NodeType == XmlNodeType.Text);
foreach (XText node in nodes) {
node.Value = node.Value.ToUpper();
}
}
关于c# - 使用 LINQ 将所有 Xml 元素值大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5322776/