.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 ...
随机推荐
- javascript中for/in循环及使用技巧
JavaScript 支持不同类型的循环: for - 循环代码块一定的次数 for/in - 循环遍历对象的属性 while - 当指定的条件为 true 时循环指定的代码块 do/while - ...
- 定时重启Apache与MySQL方法
可以定时重启apache服务器等.让网站运行的效果更快. 采用at命令添加计划任务. 有关使用语法可以到window->“开始”->运行“cmd”->执行命令“at /”,这样界面中 ...
- ViewPage显示Fragment集合实现左右滑动并且出现tab栏--第三方开源--SlidingTabLayout和SlidingTabStrip实现
注意:有关Fragment的方法和ViewPager的全部是android.support.v4包的,否则会报很多的错误 MainActivity: package com.zzw.fragmentt ...
- HTML5 的新的表单属性
本章讲解涉及 <form> 和 <input> 元素的新属性. 新的 form 属性: autocomplete novalidate 新的 input 属性: autocom ...
- Delphi 的运算符列表
分类 运算符 操作 操作数 结果类型 范例 算术运算符 + 加 整数,实数 整数,实数 X + Y - 减 整数,实数 整数,实数 Result - 1 * 乘 整数,实数 整数,实数 P * Int ...
- C#连接mysql实例
using System; using System.Configuration; using MySql.Data.MySqlClient; /// <summary> /// Test ...
- xml结构
一.XmlHelper using System; using System.Collections.Generic; using System.Linq; using System.Web; usi ...
- C#高级功能(三)Action、Func,Tuple
Action和Func泛型委托实际上就是一个.NET Framework预定义的委托,3.5引入的特性.基本涵盖了所有常用的委托,所以一般不用用户重新声明. Action系列泛型委托,是没有返回参数的 ...
- static 与 final 修饰符
A) 用static(静态)修饰属性:一个类生成了N个对象,这些对象会共同使用一份静态的成员变量.一个对象对这个成员变量进行修改,其他对象的该成员变量的值也会随之变化. B) 我们可以通过 类名.成员 ...
- Git 设置别名[alias]
工作中我经常设置一下别名... 别名就在[alias]后面,要删除别名,直接把对应的行删掉即可. 而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中: $ cat .git ...