从XElement中删除属性

Ari*_*ian 2 c# xml linq-to-xml c#-4.0

请考虑这个XElement:

<MySerializeClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <F1>1</F1>
    <F2>2</F2>
    <F3>nima</F3>
</MySerializeClass>
Run Code Online (Sandbox Code Playgroud)

我想删除xmlns:xsi,并xmlns:xsd从上面的XML.我写了这段代码,但它不起作用:

 XAttribute attr = xml.Attribute("xmlns:xsi");
 attr.Remove();
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

附加信息:':'字符,十六进制值0x3A,不能包含在名称中.

我如何删除上面的属性?

Mar*_*nen 6

我会用xml.Attributes().Where(a => a.IsNamespaceDeclaration).Remove().或者使用xml.Attribute(XNamespace.Xmlns + "xsi").Remove().