在C#中从XML中删除所有属性的最简单方法是什么?

时间:2010-08-23 09:18:17

标签: xml regex parsing

我想从XML中删除所有标记的属性(我想只保留标记及其内部值)。在C#中最简单的方法是什么?

3 个答案:

答案 0 :(得分:4)

foreach (XmlElement el in nodes.SelectNodes(".//*")) {
   el.Attributes.RemoveAll();
}

答案 1 :(得分:3)

static void removeAllAttributes(XDocument doc)
{
    foreach (var des in doc.Descendants())
        des.RemoveAttributes();
}

用法:

var doc = XDocument.Load(path); //Or .Parse("xml");
removeAllAttributes(doc);

string res = doc.ToString();

答案 2 :(得分:0)

如果你使用更好的 XPath,比如 "//*[@*]"

foreach (XmlElement el in nodes.SelectNodes("//*[@*]")) {
   el.Attributes.RemoveAll();
}

这会将结果限制为仅具有属性的元素。