在学习操作xml的读写时有这样一个疑问
booksFile是一个xml文件的路径,将其读取到内存保存在document变量后将document的根节点赋给root,可是代码中没有对document再进行操作,为什么通过
document.save()对xml进行操作后xml文件发生了改变?
private void button_Click(object sender, RoutedEventArgs e)
{
XmlDocument document = new XmlDocument();
document.Load(booksFile);
XmlElement root = document.DocumentElement;
if (root.HasChildNodes)
{
root.RemoveChild(root.LastChild);
document.Save(booksFile);
}
}
引用类型赋值的是堆上数据的引用,你那里相当于把document根节点的引用赋值给root,让root指向堆中document根节点的数据,然后你removechild方法对该数据进行了改变,自然在堆中的document数据会有变化,你再用save方法把它保存出来之后是有变化的