111,126
社区成员
发帖
与我相关
我的任务
分享
private void SaveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog save = new SaveFileDialog();
save.Filter = "XML文件|*.xml";
save.InitialDirectory = Directory.GetCurrentDirectory();
save.RestoreDirectory = true;
if (save.ShowDialog() == DialogResult.OK)
{
getfilename = save.FileName; //getfilename 得到的路径是对的,这个我调试的时候可以看见
savefile = true;
writeXml();
xmldoc.Save(getfilename);
}
}
File.Delete(getfilename); //这个就是你说的方法 不行的
#region XML文档节点或属性的删除
/// <summary>
/// 删除匹配XPath表达式的第一个节点(节点中的子元素同时会被删除)
/// </summary>
/// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param>
/// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名</param>
/// <returns>成功返回true,失败返回false</returns>
public static bool DeleteXmlNodeByXPath(string xmlFileName, string xpath)
{
bool isSuccess = false;
XmlDocument xmlDoc = new XmlDocument();
try
{
xmlDoc.Load(xmlFileName); //加载XML文档
XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath);
if (xmlNode != null)
{
//删除节点
xmlNode.ParentNode.RemoveChild(xmlNode);
}
xmlDoc.Save(xmlFileName); //保存到XML文档
isSuccess = true;
}
catch (Exception ex)
{
throw ex; //这里可以定义你自己的异常处理
}
return isSuccess;
}