从XmlNode中删除属性

Amz*_*ath 5 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);
}
Run Code Online (Sandbox Code Playgroud)

Jos*_*nig 8

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

distribution.ParentNode.Attributes.Remove(attribute); 
Run Code Online (Sandbox Code Playgroud)