Comment faire pour supprimer attribut xmlns avec .NET API XML

XmlElement.Les attributs.Supprimer* méthodes fonctionnent très bien pour arbitraire attributs résultant dans l'supprimé les attributs de l'être retiré de XmlDocument.OuterXml de la propriété. Attribut Xmlns est cependant différente. Voici un exemple:

XmlDocument doc = new XmlDocument();
doc.InnerXml = @"<Element1 attr1=""value1"" xmlns=""http://mynamespace.com/"" attr2=""value2""/>";
doc.DocumentElement.Attributes.RemoveNamedItem("attr2");
Console.WriteLine("xmlns attr before removal={0}", doc.DocumentElement.Attributes["xmlns"]);
doc.DocumentElement.Attributes.RemoveNamedItem("xmlns");
Console.WriteLine("xmlns attr after removal={0}", doc.DocumentElement.Attributes["xmlns"]);

Le résultat est

xmlns attr before removal=System.Xml.XmlAttribute
xmlns attr after removal=
<Element1 attr1="value1" xmlns="http://mynamespace.com/" />

L'attribut semble être retirés de la collection d'Attributs, mais il n'est pas supprimé de XmlDocument.OuterXml.
Je suppose que c'est à cause de la signification particulière de cet attribut.

La question est comment faire pour supprimer l'attribut xmlns à l'aide .NET API XML.
Évidemment, je peux juste supprimer l'attribut à partir d'une représentation de Chaîne de caractères, mais je me demande si il est possible de faire la même chose en utilisant l'API.

@Edit: je suis en train de parler .NET 2.0.

  • Je viens de tomber sur cette question. Bonne trouvaille!
InformationsquelleAutor axk | 2008-09-16