.NET XML增删查改

 


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace LinqDBPro.App_Code
{
class XMLOp
{

//xml的读写更新,删除

//1. 生成xml
public void createXml() {
XmlDocument document = new XmlDocument();
XmlElement root = document.CreateElement("Customers");
document.AppendChild(root);
Console.WriteLine("开始生成xml");
for (int i = 0; i < 10;i++ )
{
XmlElement childNode = document.CreateElement("Customer");
childNode.SetAttribute("customerId",i.ToString());
childNode.SetAttribute("customerCode",Guid.NewGuid().ToString());

XmlElement customerNode = document.CreateElement("customerName");
customerNode.InnerText = "company("+(i+1)+")";

XmlElement customerAddressNode = document.CreateElement("customerAddress");
customerAddressNode.InnerText = "深圳"+i;

childNode.AppendChild(customerNode);
childNode.AppendChild(customerAddressNode);

root.AppendChild(childNode);
}

document.Save("d:\\data\\customer.xml");
Console.WriteLine("生成完毕..");
}

//解析Xml

public void readxml() {
XmlDocument document = new XmlDocument();
document.Load("d:\\data\\customer.xml");

XmlNode root = document.SelectSingleNode("Customers"); //取到根节点
XmlNodeList childNodeList = root.ChildNodes; //取到根节点下的所有子节点
foreach( XmlNode childNode in childNodeList ){
XmlElement childElement = childNode as XmlElement;
string customerId = childElement.GetAttribute("customerId");
string customerCode = childElement.GetAttribute("customerCode");
Console.WriteLine(customerId+":"+customerCode);
//取customer下的子节点
XmlNodeList cNodeList = childElement.ChildNodes;
foreach(XmlNode node in cNodeList ){
XmlElement cElement = node as XmlElement;
Console.WriteLine(cElement.Name + ":" + cElement.InnerText);
}
}

}


//更新节点,eg:给每个子节点加一个customerEnglishName
public void updateXml() {
string xmlPath = "d:\\data\\customer.xml";
XmlDocument document = new XmlDocument();
Console.WriteLine("bgin to read xml..");
document.Load(xmlPath);
Console.WriteLine("read xml ok..\n get the root node.");
XmlNode root = document.SelectSingleNode("Customers");
XmlNodeList childList = root.ChildNodes;
foreach (XmlNode node in childList)
{

XmlElement childElement = node as XmlElement;

Console.WriteLine("update node :"+childElement.GetAttribute("customerId"));

XmlElement customerEnglishNameNode = document.CreateElement("customerEnglishName");
customerEnglishNameNode.InnerText = "HuaWei co.ltd";

childElement.AppendChild(customerEnglishNameNode);

}
document.Save(xmlPath);
}

//增加一个新的节点
public void addNewNode(){
string xmlPath = "d:\\data\\customer.xml";
XmlDocument document = new XmlDocument();
document.Load(xmlPath);

XmlNode root = document.SelectSingleNode("Customers");
Console.WriteLine("begin add..");
XmlElement newElement = document.CreateElement("Customer");
newElement.SetAttribute("customerId","10");
newElement.SetAttribute("customerCode",Guid.NewGuid().ToString());

XmlElement newCustomerNameNode = document.CreateElement("customerName");
newCustomerNameNode.InnerText = "newCompany";

XmlElement newCustomerAddressNode = document.CreateElement("customerAddress");
newCustomerAddressNode.InnerText = "xi'an";

XmlElement newCustomerEnglishNode = document.CreateElement("customerEnglishName");
newCustomerEnglishNode.InnerText = "new inc.";

newElement.AppendChild(newCustomerNameNode);
newElement.AppendChild(newCustomerAddressNode);
newElement.AppendChild(newCustomerEnglishNode);

root.AppendChild(newElement);

document.Save(xmlPath);

Console.WriteLine("add ok..");

}


//删除某个节点
public void deleteNode() {
string xmlPath = "d:\\data\\customer.xml";
XmlDocument document = new XmlDocument();
document.Load(xmlPath);

string deleteCustomerCode = "904063aa-17a9-438a-8f3f-a31641fb230b";
XmlNode root = document.SelectSingleNode("Customers");
XmlNodeList nodeList = root.ChildNodes;
foreach(XmlNode node in nodeList ){
Console.WriteLine("begin to search..");
XmlElement childElement = node as XmlElement;
string customerCode = childElement.GetAttribute("customerCode");
if(customerCode.Equals(deleteCustomerCode)){
Console.WriteLine("searched..Id:"+childElement.GetAttribute("customerId"));
root.RemoveChild(childElement);
Console.WriteLine("deleteed..");
}
}

document.Save(xmlPath); } } }

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念