.net之XML
前言
想想毕业到现在已经工作了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的更多相关文章
- XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法
在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...
- .NET Core采用的全新配置系统[9]: 为什么针对XML的支持不够好?如何改进?
物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurationSource.XmlConfigura ...
- WebApi接口 - 响应输出xml和json
格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况:希望大家喜欢,也希望各位多多扫码支持和点 ...
- XML技术之DOM4J解析器
由于DOM技术的解析,存在很多缺陷,比如内存溢出,解析速度慢等问题,所以就出现了DOM4J解析技术,DOM4J技术的出现大大改进了DOM解析技术的缺陷. 使用DOM4J技术解析XML文件的步骤? pu ...
- UWP开发之Mvvmlight实践六:MissingMetadataException解决办法(.Net Native下Default.rd.xml配置问题)
最近完成一款UWP应用,在手机端测试发布版(Release)的时候应用莫名奇妙的强行关闭,而同样的应用包在PC端一点问题都没有,而且Debug版在两个平台都没有问题,唯独手机的Release版有问题. ...
- PHP中遍历XML之SimpleXML
简单来讲述一些XML吧,XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言.XML是当今用于传输数据的两大工具之一,另外一个是json. 我们在PHP中使用XML也是用来传输数据, ...
- Asp.Net 操作XML文件的增删改查 利用GridView
不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...
- Mybatis XML配置
Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...
- Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)
Android XML shape 标签使用详解 一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...
- C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”
Q: 在反序列化 Xml 字符串为 Xml 对象时,抛出如下异常. 即在 XML文档(0, 0)中有一个错误:缺少根元素. A: 首先看下代码: StringBuilder sb = new Stri ...
随机推荐
- ASP.NET MVC SignalR(1):背景
系列目录:ASP.NET MVC SignalR 关键词:HTTP.轮询.WebSocket.Server-Sent Events.长轮询.forever frame. 1. HTTP HTTP(Hy ...
- iOS中UIKit——UIDataDetectors(数据检测器)它将电话、邮件、网址等变为链接
1.它用于UITextView和UIWebView,属性名为:dataDetetorTypes 2.此属性可以设定使符合电话.邮件.网址.符合格式的日期等文字变为链接文字. 3.电话号码点击后拨出电话 ...
- 判断文件夹下是否存在txt格式的文本文件
判断D盘下是否存在txt类型的文件 string p_Path="D:\\"; bool IsHaveTxt() { DirectoryInfo foldinfo = new Di ...
- luigi学习9--执行模型
luigi的执行和触发模型非常简单. 一.luigi的执行模型 当你执行一个luigi的工作流的时候,worker调度所有的task,并且执行task在一个单独的进程中. 这种scheme最大的好处是 ...
- 配置Nginx服务
一,安装之前准备1.nginx依赖: gcc openssl-devel pcre-devel zlib-devel 安装依赖:yum install gcc openssl-devel pcr ...
- mouseout以及mouseover
两个图层 红色图层代表outside蓝色图层代表inside dom结构如下 <div id="outside"> <div id="insi ...
- CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。
firewall:systemctl start firewalld.service#启动firewallsystemctl stop firewalld.service#停止firewallsyst ...
- 03-树3 Tree Traversals Again
二叉树及其遍历 push为前序遍历序列,pop为中序遍历序列.将题目转化为已知前序.中序,求后序. 前序GLR 中序LGR 前序第一个为G,在中序中找到G,左边为左子树L,右边为右子树R. 将左右子树 ...
- GPS之NMEA协议20160526
NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备制定的标准格式.现在已经成为GPS导航设备统一的RTCM(Rad ...
- jquery.unobtrusive-ajax.js的扩展,做到片段式加载
//ajax支持库 /*! ** Unobtrusive Ajax support library for jQuery ** Copyright (C) Microsoft Corporation. ...