C#操作XML方法:新增、修改和删除节点与属性 (2)

属性

1 public void SelectAttribute(string xmlPath) 2 { 3 XmlDocument xmlDoc = new XmlDocument(); 4 xmlDoc.Load(xmlPath); 5 XmlElement element = (XmlElement)xmlDoc.SelectSingleNode("BookStore/NewBook"); 6 string name = element.GetAttribute("Name"); 7 Console.WriteLine(name); 8 }

三  linq to XML 操作

Linq to Xml 也没什么变化只操作对象改变了主要涉及的几个对象如下   注:我并没有用linq的语法去操作元素。

XDocument:用于创建一个XML实例文档

XElement:用于一些节点与节点属性的基本操作

以下是对Xml的 一些简单的操作

3.1 新增节点与属性

1 public void Create(string xmlPath) 2 { 3 XDocument xDoc = XDocument.Load(xmlPath); 4 XElement xElement = xDoc.Element("BookStore"); 5 xElement.Add(new XElement("Test", new XAttribute("Name", "Zery"))); 6 xDoc.Save(xmlPath); 7 }

属性

1 public void CreateAttribute(string xmlPath) 2 { 3 XDocument xDoc = XDocument.Load(xmlPath); 4 IEnumerable<XElement> xElement = xDoc.Element("BookStore").Elements("Book"); 5 foreach (var element in xElement) 6 { 7 element.SetAttributeValue("Name", "Zery"); 8 } 9 xDoc.Save(xmlPath); 10 }

3.2 删除节点与属性

1 public void Delete(string xmlPath) 2 { 3 XDocument xDoc = XDocument.Load(xmlPath); 4 XElement element = (XElement)xDoc.Element("BookStore").Element("Book"); 5 element.Remove(); 6 xDoc.Save(xmlPath); 7 }

属性

1 public void DeleteAttribute(string xmlPath) 2 { 3 XDocument xDoc = XDocument.Load(xmlPath); 4 //不能跨级取节点 5 XElement element = xDoc.Element("BookStore").Element("Book").Element("Name"); 6 element.Attribute("BookName").Remove(); 7 xDoc.Save(xmlPath); 8 }

3.3 修改节点属性

节点.net没提供修改的方法本文也不做处理

修改属性与新增实质是同一个方法

1 public void ModifyAttribute(string xmlPath) 2 { 3 XDocument xDoc = XDocument.Load(xmlPath); 4 XElement element = xDoc.Element("BookStore").Element("Book"); 5 element.SetAttributeValue("BookName","ZeryTest"); 6 xDoc.Save(xmlPath); 7 }

四 总结

把文章写完时,又扫去了自己的一个盲区,虽然都是些简单的操作,但在实际的开中,又何尝不是由简单到复杂呢。我觉得身为程序员就应该遇到自己的盲区时,立马花时间去了解,不说要了解多深入,但至少基本的还是要知道,等到工作中真需时,只要稍微花点时间就可以了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgywfy.html