使用LINQ to XML还可以添加新的元素到XML文件。下面的实例代码使用XElement类创建了一个新元素,并动态添加到Books.xml文件中。添加新元素之后,并将Books.xml文件的内容显示在网页中。具体步骤如下。
(1)将Books.xml文件的访问地址转换为物理地址。
(2)使用XElement类的Load()方法读取Books.xml文件的内容,并创建为xe实例。
(3)使用XElement类创建一个新元素(名称为“Book”)xe,。
(4)为Book元素添加ID属性、No元素、Name元素、Price元素和Remark元素。
(5)调用Add()方法将新元素xe添加到Books.xml文件中。
(6)调用Save()方法重新保存xe实例保存为Books.xml文件。
(7)在网页显示xe实例的内容,即Books.xml文件的内容。
(8)设置网页的输出格式为“text/xml”,并中止网页的输出操作。
private void AddXmlElement()
{ ///导入XML文件
string xmlFilePath = Server.MapPath("Data/Books.xml");
XElement xe = XElement.Load(xmlFilePath);
///创建一个新的节点
XElement book = new XElement("Book",
new XAttribute("ID","104"), ///添加属性ID
new XElement("No","0004"), ///添加元素No
new XElement("Name","Book 0004"), ///添加元素Name
new XElement("Price","300"), ///添加元素Price
new XElement("Remark","This is a book 0004.") ///添加元素Remark
);
///添加节点到文件中,并保存
xe.Add(book);
xe.Save(xmlFilePath);
///显示XML文件的内容
Response.Write(xe);
///设置网页显示的形式为XML文件
Response.ContentType = "text/xml";
Response.End();
}
Sample_11项目中的OperateXML.aspx页面测试了上述实例代码(AddXmlElement()函数),测试结果如图所示。