如何从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);
}
答案 0 :(得分:8)
XmlAttributes不是XmlNodes。 XmlNode.ChildNodes
的类型为XmlNodeList
,而XmlNode.Attributes
的类型为XmlAttributesCollection
。要删除属性,请使用XmlAttributesCollection.Remove
或.RemoveAt
方法。在您的代码中:
distribution.ParentNode.Attributes.Remove(attribute);