我正在使用带有.net 3.5的C#,并且在一些情况下我想用其他东西替换XmlDocument的XML属性中的一些子串。
一种情况是用'
替换单引号字符,另一种情况是清理一些包含有效XML的文件,但属性的值不再合适(比如替换任何以“myMachine”开头的属性) “with”newMachine“)。
有一种简单的方法可以做到这一点,还是我需要遍历每个节点的每个属性(递归)?
答案 0 :(得分:2)
接近它的一种方法是使用Linq to XML选择正确元素的列表,然后迭代该列表。这是一个例子:
XDocument doc = XDocument.Load(path);
doc.XPathSelectElements("//element[@attribute-name = 'myMachine']").ToList().ForEach(x => x.SetAttributeValue("attribute-name", "newMachine"));
您还可以进行更传统的迭代。
答案 1 :(得分:0)
我建议看一下LINQ to XML。有一组代码片段可以帮助您从这里开始 - LINQ To XML Tutorials with Examples
LINQ to XML应该允许你做你想做的事情,一旦你玩了一下,你可能会觉得很容易。