2011-12-29 29 views
5

cómo eliminar un atributo de un objeto System.Xml.XmlNode en C#. El código que probé no funcionó. Lanza una excepción "nodo a eliminar no es nodo hijo válido"Eliminar un atributo de XmlNode

foreach (XmlNode distribution 
     in responseXml.SelectNodes("/Distributions/Distribution/DistributionID")) 
{ 
    XmlAttribute attribute = null; 
    foreach (XmlAttribute attri in distribution.Attributes) 
    { 
    if (attri.Name == "GrossRevenue") 
     attribute = attri; 
    } 
    if (attribute != null) 
    distribution.ParentNode.RemoveChild(attribute); 
} 
+2

Debe incluir los datos xml para que alguien que desee probar su código pueda hacerlo. –

Respuesta

8

XmlAttributes no son XmlNodes. XmlNode.ChildNodes es del tipo XmlNodeList, mientras que XmlNode.Attributes es del tipo XmlAttributesCollection. Para eliminar un atributo, utiliza el método XmlAttributesCollection.Remove o .RemoveAt. En su código:

distribution.ParentNode.Attributes.Remove(attribute); 
Cuestiones relacionadas