.net之XML
前言
想想毕业到现在已经工作了3个月,总结的知识点还是太少。这周因为项目完成的差不多了,有空补充一下知识,上周学了XML吗,一直都没有总结。今天便总结一下,一方面梳理一下知识点,一方面巩固下知识。
XML的特性
- 标签要闭合
- 属性要用" "包围。
- Xml的大小写敏感
- 元素必须关闭
- 标签可以嵌套
怎么获取你已经建立的xml文件
1,先建立一个xml文件取名XMLFile1.xml
2,在同一目录下建立一个webform页面,获取同类型的代码如下
1 XmlDocument xd = new XmlDocument(); 2 xd.Load(Server.MapPath("XMLFile1.xml"));
第一行代码声明一个XmlDocument类(想象一个装xml文件的容器),第二行代码把xml文件导入该容器。
怎么获取xml的节点
为了更加直观一点,直接上代码:
1 XmlElement xe=xd.DocumentElement; 2 //获取xml文件中的根元素 3 4 XmlNode root = xd.SelectSingleNode("DocumentElement"); 5 //获取xml文件中的第一个所找"DocumentElement"节点,此处因为DocumentElement为根节点, 6 //所以可以用来获取该xml文件中的全部节点 7 8 XmlNode xn = root.FirstChild; 9 //根节点下的第一个节点 10 11 xn = root.LastChild; 12 //根节点下的最后一个节点 13 14 XmlNodeList xnl=xd.SelectSingleNode("DocumentElement").ChildNodes; 15 //获取xml文件中的全部孩子节点 16 17 18 xnl = root.SelectNodes("descendant::basic[Name='Lily']"); 19 //获取root节点下所有满足name节点为lily的一级子节点,语法为("descendant::{0}[{1}"],root节点的一级子节点,条件)
附上一个简单的xml
<DocumentElement> <basic> <ID>1</ID> <Name>Lily</Name> </basic> <basic> <ID>2</ID> <Name>Lucy</Name> </basic> <basic> <ID>3</ID> <Name>Lilei</Name> </basic> <basic> <ID>4</ID> <Name>HanMeiMei</Name> </basic> <basic> <ID>5</ID> <Name>LinTao</Name> </basic> </DocumentElement>
节点的操作方法
下面写了几个常用的,欢迎补充
1 增加节点
1 XmlElement xe = xd.CreateElement("basic");//新建节点 2 XmlElement xe2 = xd.CreateElement("ID"); 3 xe2.InnerText = "5";// 4 xe.AppendChild(xe2);//把xe2放到basic节点里 5 XmlElement xe3 = xd.CreateElement("Name"); 6 xe3.InnerText = "HuangFeiHong"; 7 xe.AppendChild(xe3); 8 root.InsertAfter(xe, root.SelectSingleNode("descendant::basic[Name='Lily']"));//xe为要插入的节点,第二个参数为要插入的位置 9 xd.Save(Server.MapPath("XMLFile1.xml"));//保存xml文件
2 删除节点
XmlNode root = doc.DocumentElement; XmlNode xn1 = root.SelectSingleNode("descendant::basic[ID='3']"); root.RemoveChild(xn1);
3将xml显示出来
sb为StringBuilder类型;
sb.Append("<table>"); XmlNodeList nodelist = root.SelectNodes("//basic"); foreach (XmlNode xn in nodelist) { sb.Append("<tr>"); XmlNodeList xnlist=xn.ChildNodes; foreach (XmlNode XN in xn) { sb.Append("<td width='50px' height='20px'>"); sb.Append(XN.InnerText); sb.Append("</td>"); } sb.Append("</tr>"); } sb.Append("</table>");
4 增删查改,最后一个当然是改,不过此处不再贴出代码,实际操作为修改找到节点的innerText即可。
说说感想
虽然不怎么写博客,不过倒是看了很多,学习了很多,第一次写这种总结性的博客,写的不好希望大家给出意见。今天写的这篇博客也花了有三个小时。临时写的程序,写的过程发现了很多缺漏,重新梳理了很多知识。发现写博客确实能帮助自己进步,巩固知识,能把自己乱糟糟的知识一点点理出来。以后还会继续写。共勉!