从XmlNode中删除属性

6
如何在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);
}

2
你应该包含XML数据,这样想尝试你的代码的人就可以做到。 - Steve Wellens
1个回答

11

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

distribution.ParentNode.Attributes.Remove(attribute); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接