转自: http://blog.csdn.net/chinajiyong/article/details/7485019
这几天想写点基础的博客内容,正好最近在用XML,就写了一点XML的基本操作。
通过函数的形式表现出来。
- /*
- -------------------------------------
- Context:LINQTOXML
- -------------------------------------
- Author:Chinajiyong
- -------------------------------------
- DateTime:2012-04-21
- -------------------------------------
- 通过函数的形式表现出来
- -------------------------------------
- */
- privatestaticvoidCreateXmlFile(stringxmlpath)
- {
- XDocumentdoc=newXDocument(
- newXDeclaration("1.0","utf-8","yes"),
- newXElement("Books",
- newXElement("Book",
- newXAttribute("BookID","001"),
- newXElement("BookNo","0001"),
- newXElement("BookName","Book0001"),
- newXElement("BookPrice","40"),
- newXElement("BookRemark","Thisisabook0001")
- )
- )
- );
- doc.Save(xmlpath);
- Console.WriteLine(doc);
- }
调用函数CreateXmlFile(string xmlpath)
- staticvoidMain(string[]args)
- {
- Program.CreateXmlFile(@"C:BookStore.xml");
- }
运行结果:
- privatestaticvoidAddXmlElement(stringxmlpath)
- {
- XElementxe=XElement.Load(xmlpath);
- XElementbook1=newXElement("Book",
- newXAttribute("BookID","002"),
- newXElement("BookNo","0002"),
- newXElement("BookName","Book0002"),
- newXElement("BookPrice","50"),
- newXElement("BookRemark","Thisisabook0002")
- );
- xe.Add(book1);
- XElementbook2=newXElement("Book","003"),"0003"),"Book0003"),"30"),"Thisisabook0003")
- );
- xe.Add(book2);
- XElementbook3=newXElement("Book","004"),"0004"),"Book0004"),"60"),"Thisisabook0004")
- );
- xe.Add(book3);
- xe.Save(xmlpath);
- Console.WriteLine(xe);
- }
调用函数AddXmlElement(string xmlpath)
- Program.AddXmlElement(@"C:BookStore.xml");
运行结果:
- privatestaticvoidModifyXmlElement(stringxmlpath,stringstrElement)
- {
- XElementxe=XElement.Load(xmlpath);
- IEnumerable<XElement>element=fromeinxe.Elements("Book")
- wheree.Attribute("BookID").Value==strElement
- selecte;
- if(element.Count()>0)
- {
- XElementfirstelement=element.First();
- firstelement.SetAttributeValue("BookID","new004");
- firstelement.ReplaceNodes(
- newXElement("BookNo","new0004"),
- newXElement("BookName","Booknew0004"),
- newXElement("BookPrice","45"),
- newXElement("BookRemark","Thisisabooknew0004")
- );
- }
- xe.Save(xmlpath);
- Console.WriteLine(xe);
- }
调用函数ModifyXmlElement(string xmlpath,string strElement)
- Program.ModifyXmlElement(@"C:BookStore.xml","004");
运行结果:
- privatestaticvoidDeleteXmlElement(stringxmlpath,stringstrElement)
- {
- XElementxe=XElement.Load(xmlpath);
- IEnumerable<XElement>element=fromeinxe.Elements("Book")
- wheree.Attribute("BookID").Value==strElement
- selecte;
- if(element.Count()>0)
- {
- XElementfirstelement=element.First();
- firstelement.RemoveAll();
- }
- xe.Save(xmlpath);
- Console.WriteLine(xe);
- }
调用函数DeleteXmlElement(string xmlpath,string strElement)
- Program.DeleteXmlElement(@"C:BookStore.xml","new004");
运行结果:
- privatestaticvoidConvertAttributeToElement(stringxmlpath,stringstrAttribute)
- {
- XElementxe=XElement.Load(xmlpath);
- IEnumerable<XElement>element=fromeinxe.Elements("Book")
- wheree.Attribute("BookID").Value==strAttribute
- selecte;
- if(element.Count()>0)
- {
- XElementfirstelement=element.First();
- XAttributeattr=firstelement.FirstAttribute;
- firstelement.AddFirst(
- newXElement(attr.Name,attr.Value)
- );
- firstelement.RemoveAttributes();
- }
- xe.Save(xmlpath);
- Console.WriteLine(xe);
- }
调用函数:ConvertAttributeToElement(string xmlpath,string strAttribute)
- Program.ConvertAttributeToElement(@"C:BookStore.xml","new004");
运行结果:
- privatestaticvoidQueryRootElement(stringxmlpath)
- {
- XDocumentdoc=XDocument.Load(xmlpath);
- Console.WriteLine(doc.Root.Name);
- }
- <strong><spanstyle="font-size:18px;">调用函数:QueryRootElement(stringxmlpath)</span></strong>
- <prename="code"class="csharp">
- Program.QueryRootElement(@"C:BookStore.xml");</pre><strong><spanstyle="font-size:18px">运行结果:</span></strong><p></p>
- <pre></pre>
- <prename="code"class="csharp"style="background-color:rgb(255,255,255);">Books</pre><prename="code"class="csharp">
- privatestaticvoidQueryElementByName(stringxmlpath,stringstrName)
- {
- XElementxe=XElement.Load(xmlpath);
- varelements=xe.Elements("Book")
- .Where(e=>(string)e.Element("BookName")==strName)
- .OrderBy(e=>e.Element("BookName"))
- .ToList();
- elements.ForEach(e=>Console.WriteLine(e));
- }</pre><strong><spanstyle="font-size:18px">调用函数:QueryElementByName(stringxmlpath,stringstrName)</span></strong><br>
- <br>
- <prename="code"class="csharp">
- Program.QueryElementByName(@"C:BookStore.xml","Book0003");</pre><strong><spanstyle="font-size:18px">运行结果:</span></strong>
- <p></p>
- <p><imgsrc="http://my.csdn.net/uploads/201204/21/1335011713_3231.png"alt=""><br>
- <br>
- </p><prename="code"class="csharp">
- privatestaticvoidQueryElementByAttribute(stringxmlpath,stringstrAttribute)
- {
- XElementxe=XElement.Load(xmlpath);
- vareAttribute=xe.Elements("Book")
- .Where(e=>(string)e.Attribute("BookID")==strAttribute)
- .OrderBy(e=>e.Element("BookID"))
- .ToList();
- eAttribute.ForEach(e=>Console.WriteLine(e));
- }</pre><strong><spanstyle="font-size:18px">调用函数:QueryElementByAttribute(stringxmlpath,stringstrAttribute)</span></strong><br>
- <prename="code"class="csharp">
- Program.QueryElementByAttribute(@"C:BookStore.xml","003");</pre><spanstyle="font-size:18px"><strong>运行结果:</strong></span><p></p>
- <p><imgsrc="http://my.csdn.net/uploads/201204/21/1335011840_7341.png"alt=""><br>
- </p><prename="code"class="csharp">
- privatestaticvoidQuerySubElement(stringxmlpath,stringstrSubElement)
- {
- XElementxe=XElement.Load(xmlpath);
- varelements=xe.Elements("Book")
- .Descendants("BookRemark")
- .ToList();
- foreach(vareinelements)
- {
- Console.WriteLine(e.Name.LocalName+"t"+e.Value);
- }
- }</pre><strong><spanstyle="font-size:18px">调用函数:QuerySubElement(stringxmlpath,stringstrSubElement)</span></strong><p></p>
- <p></p><prename="code"class="csharp">
- Program.QuerySubElement(@"C:BookStore.xml","BookRemark");</pre><spanstyle="font-size:18px"><strong>运行结果:</strong></span><p></p>
- <p><imgsrc="http://my.csdn.net/uploads/201204/21/1335011970_6889.png"alt=""></p>
- <p></p><prename="code"class="csharp">
- privatestaticvoidQueryElementByOrder(stringxmlpath)
- {
- XElementxe=XElement.Load(xmlpath);
- varelements=xe.Elements("Book")
- .Where(e=>Convert.ToInt32(e.Attribute("BookID").Value.Substring(e.Attribute("BookID").Value.Length-1,1))>1)
- .OrderByDescending(e=>(string)e.Element("BookName"))
- .ToList();
- elements.ForEach(e=>Console.WriteLine(e.Element("BookName").Value));
- }</pre><strong><spanstyle="font-size:18px">调用函数:QueryElementByOrder(stringxmlpath)</span></strong><br>
- <prename="code"class="csharp">
- Program.QueryElementByOrder(@"C:BookStore.xml");</pre><spanstyle="font-size:18px"><strong>运行结果:</strong></span><p></p>
- <p><imgsrc="http://my.csdn.net/uploads/201204/21/1335012340_2136.png"alt=""><br>
- </p><prename="code"class="csharp">
- privatestaticvoidQueryElementByCoeompute(stringxmlpath)
- {
- XElementxe=XElement.Load(xmlpath);
- varelements=xe.Elements("Book")
- .Where(e=>Convert.ToInt32(e.Attribute("BookID").Value.Substring(e.Attribute("BookID").Value.Length-1,1))>1)
- .OrderByDescending(e=>(string)e.Element("BookName"))
- .ToList();
- Console.WriteLine("Average:"+elements.Average(e=>Convert.ToInt32(e.Element("BookPrice").Value)));
- }</pre><strong><spanstyle="font-size:18px">调用函数:QueryElementByCoeompute(stringxmlpath)</span></strong><br>
- <prename="code"class="csharp">
- Program.QueryElementByCoeompute(@"C:BookStore.xml");</pre><strong><spanstyle="font-size:18px">运行结果:</span></strong><p></p>
- <p><imgsrc="http://my.csdn.net/uploads/201204/21/1335012463_5700.png"alt=""><br>
- <br>
- </p>
- <p><spanstyle="font-size:18px">到此为止全部操作已经完成。整个操作仍然很简单。</span></p>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|