如何重命名特定XML元素的所有出现?

时间:2019-04-15 08:45:39

标签: c# .net xml

我有一个XML文件,它包含各种<b>标签。我想使用linq将所有<b>重命名为<span class="ld_bold">,但我只想重命名元素。我不想替换它的值。

我目前正在使用StringBuilder,并使用foreach逐行读取文件,这就是为什么<>被转换为{{1} }和&lt;分别在使用&gt;加载文件时显示。

1 个答案:

答案 0 :(得分:1)

您可以使用XDocument来解析XML,.Descendants可以找到所有 b 元素,然后根据需要进行操作,如下所示:

var xml = "<div><b>Hello</b><i><b>Goodbye</b></i></div>";
XDocument doc = XDocument.Parse(xml);

foreach (var item in doc.Descendants("b"))
{
    item.Name = "span";
    item.SetAttributeValue("class", "ld_bold");
}

Console.WriteLine(doc.ToString());

演示: https://dotnetfiddle.net/3Yp6zx