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:datacustomer.xml"); Console.WriteLine("生成完毕.."); }
//解析Xml
public void readXml() { XmlDocument document = new XmlDocument(); document.Load("d:datacustomer.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:datacustomer.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:datacustomer.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:datacustomer.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); } } } (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|