linq to xml操作XML将属性转换为元素
使用LINQ to XML还可以将XML文件中的属性转换为元素。下面的实例代码使用LINQ to XML将Books.xml文件中的ID属性转换名称为“ID”的元素。转换操作之后,并将Books.xml文件的内容显示在网页中。具体步骤如下。
(1)将Books.xml文件的访问地址转换为物理地址。
(2)使用XElement类的Load()方法读取Books.xml文件的内容,并创建为xe实例。
(3)使用LINQ查询ID属性的值为“106”的名称为“Book”元素,查询结果保存为element变量。
(4)获取element变量中的第一个元素,并保存为first。
(5)获取first元素的第一个属性,即ID属性。
(6)添加一个新元素(名称为“ID”,值为ID属性的值)作为first元素的第一个子元素。
(7)删除first元素的ID属性。
(8)调用Save()方法重新保存xe实例保存为Books.xml文件。
(9)在网页显示xe实例的内容,即Books.xml文件的内容。
(10)设置网页的输出格式为“text/xml”,并中止网页的输出操作。
private void ConvertXmlAttributeToElement() { ///导入XML文件 string xmlFilePath = Server.MapPath("Data/Books.xml"); XElement xe = XElement.Load(xmlFilePath); ///查找被替换的元素 IEnumerable<XElement> element = from e in xe.Elements("Book") where e.Attribute("ID").Value == "106" select e; ///替换为新元素,并保存 if (element.Count() > 0) { XElement first = element.First(); ///获取第一个属性 XAttribute attribute = first.FirstAttribute; ///将属性转换为元素 first.AddFirst( new XElement(attribute.Name,attribute.Value) ///添加元素ID ); ///删除属性 first.RemoveAttributes(); } xe.Save(xmlFilePath); ///显示XML文件的内容 Response.Write(xe); ///设置网页显示的形式为XML文件 Response.ContentType = "text/xml"; Response.End(); }
Sample_11项目中的OperateXML.aspx页面测试了上述实例代码(ConvertXmlAttributeToElement()函数),测试结果如图所示。
加支付宝好友偷能量挖...