从XmlNode中删除一个属性

本文关键字:一个 属性 XmlNode 删除 | 更新日期: 2023-09-27 18:19:13

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

从XmlNode中删除一个属性

xmlatattributes不是XmlNodes。XmlNode.ChildNodesXmlNodeList型,XmlNode.AttributesXmlAttributesCollection型。要删除属性,可以使用XmlAttributesCollection.Remove.RemoveAt方法。在你的代码中:

distribution.ParentNode.Attributes.Remove(attribute);