【发布时间】:2010-12-06 08:26:30
【问题描述】:
我尝试在 C#2.0 中从我的 Xml 文件中删除一些 XmlElements。
我可以使用XmlNode.Remove() 方法成功删除它。但是XmlElement中没有Remove方法。
我用谷歌搜索并找到了这个。
元素是一种节点。实际上,如果您查看 .NET Framework 中的 XmlNode 和 XmlElement 的成员,您会发现它们非常相似,但 XmlElement 的内容更多。它继承XmlNode,然后进一步定制。这是因为元素更专业。一个节点的范围更普遍。文档是一个节点,处理指令是一个节点,等等。元素不同。如果查看元素的 XmlNodeType 属性,您会发现它是 Element,是您找到的众多节点类型之一。
如果元素是一种节点,那么为什么我不能使用删除命令。那怎么办?
XmlDocument doc_AlarmSettingUp = new XmlDocument();
doc_AlarmSettingUp.Load(xmlFile_AlarmSettingUp);
XmlNode rootDest = doc_AlarmSettingUp.SelectSingleNode("/Equipment/AlarmSettingUp/EnabledALIDs");
foreach (XmlElement el_AlarmSettingUp in doc_AlarmSettingUp.SelectNodes("/Equipment/AlarmSettingUp/EnabledALIDs/ALID"))
{
XmlElement outEl;
if (lookup.TryGetValue(el_AlarmSettingUp.GetAttribute("alid"), out outEl))
{
// exists; element now in "other"
// Console.WriteLine("exists");
}
else
{
// doesn't exist
Console.WriteLine("doesn't exist");
// Then How can I remove element with an element method? Thanks.
}
}
【问题讨论】: