前言

想想毕业到现在已经工作了3个月,总结的知识点还是太少。这周因为项目完成的差不多了,有空补充一下知识,上周学了XML吗,一直都没有总结。今天便总结一下,一方面梳理一下知识点,一方面巩固下知识。

XML的特性

  • 标签要闭合
  • 属性要用" "包围。
  • Xml的大小写敏感
  • 元素必须关闭
  • 标签可以嵌套

怎么获取你已经建立的xml文件

1,先建立一个xml文件取名XMLFile1.xml

2,在同一目录下建立一个webform页面,获取同类型的代码如下

 XmlDocument xd = new XmlDocument();
xd.Load(Server.MapPath("XMLFile1.xml"));

第一行代码声明一个XmlDocument类(想象一个装xml文件的容器),第二行代码把xml文件导入该容器。

怎么获取xml的节点

为了更加直观一点,直接上代码:

             XmlElement xe=xd.DocumentElement;
//获取xml文件中的根元素 XmlNode root = xd.SelectSingleNode("DocumentElement");
//获取xml文件中的第一个所找"DocumentElement"节点,此处因为DocumentElement为根节点,
//所以可以用来获取该xml文件中的全部节点 XmlNode xn = root.FirstChild;
//根节点下的第一个节点 xn = root.LastChild;
//根节点下的最后一个节点 XmlNodeList xnl=xd.SelectSingleNode("DocumentElement").ChildNodes;
//获取xml文件中的全部孩子节点 xnl = root.SelectNodes("descendant::basic[Name='Lily']");
//获取root节点下所有满足name节点为lily的一级子节点,语法为("descendant::{0}[{1}"],root节点的一级子节点,条件)

附上一个简单的xml

<DocumentElement>
<basic>
<ID></ID>
<Name>Lily</Name>
</basic>
<basic>
<ID></ID>
<Name>Lucy</Name>
</basic>
<basic>
<ID></ID>
<Name>Lilei</Name>
</basic>
<basic>
<ID></ID>
<Name>HanMeiMei</Name>
</basic>
<basic>
<ID></ID>
<Name>LinTao</Name>
</basic>
</DocumentElement>

节点的操作方法

下面写了几个常用的,欢迎补充

1 增加节点

 XmlElement xe = xd.CreateElement("basic");//新建节点
XmlElement xe2 = xd.CreateElement("ID");
xe2.InnerText = "";//
xe.AppendChild(xe2);//把xe2放到basic节点里
XmlElement xe3 = xd.CreateElement("Name");
xe3.InnerText = "HuangFeiHong";
xe.AppendChild(xe3);
root.InsertAfter(xe, root.SelectSingleNode("descendant::basic[Name='Lily']"));//xe为要插入的节点,第二个参数为要插入的位置
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即可。

说说感想

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

.net之XML的更多相关文章

  1. XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法

            在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...

  2. .NET Core采用的全新配置系统[9]: 为什么针对XML的支持不够好?如何改进?

    物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurationSource.XmlConfigura ...

  3. WebApi接口 - 响应输出xml和json

    格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况:希望大家喜欢,也希望各位多多扫码支持和点 ...

  4. XML技术之DOM4J解析器

    由于DOM技术的解析,存在很多缺陷,比如内存溢出,解析速度慢等问题,所以就出现了DOM4J解析技术,DOM4J技术的出现大大改进了DOM解析技术的缺陷. 使用DOM4J技术解析XML文件的步骤? pu ...

  5. UWP开发之Mvvmlight实践六:MissingMetadataException解决办法(.Net Native下Default.rd.xml配置问题)

    最近完成一款UWP应用,在手机端测试发布版(Release)的时候应用莫名奇妙的强行关闭,而同样的应用包在PC端一点问题都没有,而且Debug版在两个平台都没有问题,唯独手机的Release版有问题. ...

  6. PHP中遍历XML之SimpleXML

    简单来讲述一些XML吧,XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言.XML是当今用于传输数据的两大工具之一,另外一个是json. 我们在PHP中使用XML也是用来传输数据, ...

  7. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  8. Mybatis XML配置

    Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  9. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  10. C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”

    Q: 在反序列化 Xml 字符串为 Xml 对象时,抛出如下异常. 即在 XML文档(0, 0)中有一个错误:缺少根元素. A: 首先看下代码: StringBuilder sb = new Stri ...

随机推荐

  1. Vue.js学习 Item4 -- 数据双向绑定

    Vue.js 的模板是基于 DOM 实现的.这意味着所有的 Vue.js 模板都是可解析的有效的 HTML,且通过一些特殊的特性做了增强.Vue 模板因而从根本上不同于基于字符串的模板,请记住这点. ...

  2. 日期转换(用DateTime的ParseExact方法解析特殊的日期时间)

    今天遇到一个特别的需求,需要从下面的字符串中转换成一个DateTime对象: [07-13 15:50:42] 主要问题是这个时间不是标准的时间,而是自定义的格式,即开头是月-日,然后是时间. 使用最 ...

  3. 关于MongoDb Replica Set的故障转移集群——实战篇

    如果你还不了解Replica Set的相关理论,请猛戳传送门阅读笔者的上一篇博文. 因为Replica Set已经属于MongoDb的进阶应用,下文中关于MongoDb的基础知识笔者就不再赘述了,请参 ...

  4. WordPress 主题开发 - (六) 创建主题函数 待翻译

    We’ve got a file structure in place, now let’s start adding things to them! First, we’re going to ad ...

  5. C++求等比数列之和

    题目内容:已知q与n,求等比数列之和:1+q+q2+q3+q4+……+qn. 输入描述:输入数据不多于50对,每对数据含有一个整数n(1<=n<=20).一个小数q(0<q<2 ...

  6. delphi中表示跳出的有break,continue, exit,abort, halt, runerror

      1.break 强制退出循环(只能放在循环中),用于从For语句,while语句或repeat语句中强制退出. 2.continue 用于从For语句,while语句或repeat语句强行结束本次 ...

  7. 使用c#检测文件正在被那个进程占用 判断文件是否被占用的两种方法

    C# 判断文件是否被占用的三种方法 using System.IO; using System.Runtime.InteropServices; [DllImport("kernel32.d ...

  8. C扩展 C++回顾到入门

    引言 C扩展也称C++, 是一个复(za)杂(ji)优(ken)秀(die)的语言. 本文通过开发中常用C++方式来了解和回顾C++这么语言. C++看了较多的书但还是觉得什么都不会. 只能说自己还付 ...

  9. EMVTag系列5《8E 持卡人验证方法(CVM)列表》

    L: var. up to 252 -R(需求):数据必须存在,在读应用数据过程中,终端不检查 按照优先顺序列出卡片应用支持的所有持卡人验证方法 注:一个应用中可以有多个CVM列表,例如一个用于国内交 ...

  10. JavaScript 编码风格指南

    A.1  缩进 // 4个空格的层级缩进 if (true) { doSomething(); } A.2  行的长度 // 每行限于80个字符,超出则在运算符后换行,缩进2个层级(8个空格) doS ...