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

    说说感想

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

  • 相关阅读:
    DrGraph软件升级:处理BUG_退出程序出错
    CB2010的一个BUG:在Win2K SP4之前的系统上会出问题
    DrGraph软件升级:WIN7下的程序BUG修正
    DrGraph软件升级:编译提速
    DrGraph软件升级:窗口背景色处理
    潜安高拍仪V2013版(1)
    「工具箱」Simple Test Model
    「游戏」Astromenace
    「游戏」Simon Tatham's Puzzles
    2011 新年目标
  • 原文地址:https://www.cnblogs.com/jlimy/p/3370577.html
Copyright © 2020-2023  润新知