我正在创建一个用于操作 XML 的类,我创建了我的方法 RemoveNode 的重载
public partial class HWXml
{
public string XmlFile;
private XmlDocument XmlDoc = new XmlDocument();
public HWXml(string XmlFile)
{
this.XmlFile = XmlFile;
}
public XmlNode SelectSingleNode(string NodePath)
{
XmlDoc.Load(XmlFile);
return XmlDoc.SelectSingleNode(NodePath);
}
public void RemoveNode(XmlNode removeChild)
{
XmlDoc.Load(XmlFile);
removeChild.ParentNode.RemoveChild(removeChild);
XmlDoc.Save(XmlFile);
}
public void RemoveNode(string RemoveChild)
{
XmlDoc.Load(XmlFile);
XmlNode removeChild = XmlDoc.SelectSingleNode(RemoveChild);
removeChild.ParentNode.RemoveChild(removeChild);
XmlDoc.Save(XmlFile);
}
}
当我尝试使用字符串参数删除节点时,它可以工作
private void RemoveXML_Click(object sender, RoutedEventArgs e)
{
MyXmlClass myXmlClass = new MyXmlClass(XmlFile);
myXmlClass.RemoveNode("root/Content");
}
但是当我尝试使用 XmlNode 参数删除节点时,它将编译,执行,没有错误消息,但没有效果,它不会删除 XML 文件中的任何内容。
private void RemoveXML_Click(object sender, RoutedEventArgs e)
{
MyXmlClass myXmlClass = new MyXmlClass(XmlFile);
XmlNode node = myXmlClass.SelectSingleNode("root/Conteudo");
myXmlClass.RemoveNode(node);
}
什么是问题?