.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文件
View Code

 

2 删除节点

            XmlNode root = doc.DocumentElement;
            XmlNode xn1 = root.SelectSingleNode("descendant::basic[ID='3']");
            root.RemoveChild(xn1);
View Code

 

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即可。

说说感想

虽然不怎么写博客,不过倒是看了很多,学习了很多,第一次写这种总结性的博客,写的不好希望大家给出意见。今天写的这篇博客也花了有三个小时。临时写的程序,写的过程发现了很多缺漏,重新梳理了很多知识。发现写博客确实能帮助自己进步,巩固知识,能把自己乱糟糟的知识一点点理出来。以后还会继续写。共勉!

 

 

posted @ 2013-10-15 17:08  饮鸩止渴  阅读(353)  评论(2编辑  收藏  举报