替换XmlDocument属性中的子串

时间:2011-07-26 21:00:37

标签: c# xml

我正在使用带有.net 3.5的C#,并且在一些情况下我想用其他东西替换XmlDocument的XML属性中的一些子串。

一种情况是用'替换单引号字符,另一种情况是清理一些包含有效XML的文件,但属性的值不再合适(比如替换任何以“myMachine”开头的属性) “with”newMachine“)。

有一种简单的方法可以做到这一点,还是我需要遍历每个节点的每个属性(递归)?

2 个答案:

答案 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应该允许你做你想做的事情,一旦你玩了一下,你可能会觉得很容易。