我想从XML中删除所有标记的属性(我想只保留标记及其内部值)。在C#中最简单的方法是什么?
答案 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();
}
这会将结果限制为仅具有属性的元素。