从XmlNode中删除属性

时间:2011-12-29 20:55:34

标签: c# xml

如何从C#中的System.Xml.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);
}

1 个答案:

答案 0 :(得分:8)

XmlAttributes不是XmlNodes。 XmlNode.ChildNodes的类型为XmlNodeList,而XmlNode.Attributes的类型为XmlAttributesCollection。要删除属性,请使用XmlAttributesCollection.Remove.RemoveAt方法。在您的代码中:

distribution.ParentNode.Attributes.Remove(attribute);