XML操作:动态添加与删除<book>节点教程

需积分: 11 10 下载量 114 浏览量 更新于2024-08-02 收藏 67KB DOC 举报
"本示例将介绍如何在XML文件中增加和删除节点,具体操作以一个名为`bookstore.xml`的文件为例。" 在XML(可扩展标记语言)中,管理和操作数据通常涉及到添加和删除节点。XML文件是一种用于存储结构化数据的格式,它允许我们创建自定义的标签来组织信息。下面我们将详细讲解如何在XML文件中增加和删除节点。 首先,我们来看如何向XML文件增加新的节点。在这个例子中,我们的目标是向`<bookstore>`节点中插入一个新的`<book>`节点。以下是实现这一操作的步骤: 1. 加载XML文件:我们首先创建一个`XmlDocument`对象,并通过`Load`方法加载`bookstore.xml`文件。 ```csharp XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("bookstore.xml"); ``` 2. 获取根节点:使用`SelectSingleNode`方法找到`<bookstore>`节点。 ```csharp XmlNode root = xmlDoc.SelectSingleNode("bookstore"); ``` 3. 创建新节点:使用`CreateElement`方法创建新的`<book>`节点,以及它的子节点`<title>`, `<author>`, 和 `<price>`。 ```csharp XmlElement xe1 = xmlDoc.CreateElement("book"); xe1.SetAttribute("genre", "李赞红"); xe1.SetAttribute("ISBN", "2-3631-4"); XmlElement xeSub1 = xmlDoc.CreateElement("title"); xeSub1.InnerText = "CS从入门到精通"; XmlElement xeSub2 = xmlDoc.CreateElement("author"); xeSub2.InnerText = "候捷"; XmlElement xeSub3 = xmlDoc.CreateElement("price"); xeSub3.InnerText = "58.3"; ``` 4. 设置节点属性:利用`SetAttribute`方法为`<book>`节点添加`genre`和`ISBN`属性。 5. 添加子节点:将创建的子节点添加到`<book>`节点中,然后将整个`<book>`节点添加到`<bookstore>`。 ```csharp xe1.AppendChild(xeSub1); xe1.AppendChild(xeSub2); xe1.AppendChild(xeSub3); root.AppendChild(xe1); ``` 6. 保存更改:最后,使用`Save`方法保存对XML文件的修改。 ```csharp xmlDoc.Save("bookstore.xml"); ``` 以上代码执行后,`bookstore.xml`文件会新增一个`<book>`节点,包含书名、作者和价格等信息。 至于删除XML节点的操作,同样可以通过`XmlDocument`类完成。例如,如果我们想要删除刚刚添加的`<book>`节点,可以使用`RemoveChild`方法。首先找到这个特定的`<book>`节点,然后调用`RemoveChild`方法将其从父节点中移除。 ```csharp XmlNode nodeToRemove = xmlDoc.SelectSingleNode("//book[author='候捷']"); root.RemoveChild(nodeToRemove); xmlDoc.Save("bookstore.xml"); ``` 这样,我们就完成了XML文件中节点的增加和删除操作。在实际开发中,这些操作可能需要根据具体需求进行调整,例如通过循环处理多个节点,或者根据特定条件进行增删操作。