XML基础学习01
XML学习
1:XML:可扩展的标识语言,是一种描述结构数据的格式,简化了网络中数据交换和表示,使得代码,数据和表示分离,并作为数据交换的标准格式,被称为智能数据文档。

2:当我们不使用数据库来存储数据,将其以文件的格式进行存储。这样就是为每个数据建立一个文本文件进行存储。在高深点就是利用XML来存储,
3:格式 <处理文本,字符串>这和标签的形式是一样的。
à将所有的数据用一对尖括号包起来,这个尖括号的名字就是这个值的属性。
<name></name>
<age></age>
<sex></sex>
4:XML语法
*:XML文件,是一个纯文本文件。
*:XML结构是一个树状的结构。
à文档描述
à有根结点。
à数据存储在标签元素中。
à标签是具有属性的。
5:XML文档格式
<? xml version="1.0"encoding="gb2312">
版本是1.0,字符编码是gb2321,一般桌面上右键的都是gb2312格式的,使用VS创建的是可能是utf-8格式。
<根元素的开头></根元素的开头>
6:eg
*:先在桌面上新建个文档,修改格式为xml文件。使用chrome浏览器打开.错误显示说明这个文件没有用来描述信息,文件有问题。

*:将此文件使用记事本打开,写上格式文档头。
- <?xml version="1.0" encoding="gb2312">
这是刷新浏览器,显示如下,说文档非正常结束。

接着就是在文件里面写一些标签,这里的和基本的HTNL是一样的。
7:XML里面的标签名可以随意命名。但是还需要注意下,
*:不能使用数字开头,不能包含空格
8:保存数据的格式及常用的节点
- <?xml version="1.0" encoding="gb2312">
- <name>你好世界</name>
- <person>
- <name>张辉</name>
- <age>23</age>
- <sex>男</sex>
- </person>
将数据具体保存到标签中,让标签组合在一起表示一个具体的内容,常常使用属性标记一些标签,属性一定是键值对,并且使用双引号将值括起来。
9:注释
<!--注释的地方-->
10:区分大小写,一般的都是小写的。可以说XML是没有规范限制的。
11:什么是节点?
描述树状结构里面每个分支的都是节点。
重点部分
12:使用C#来操作XML
*:DOM---Document Object Model 文档对象模型
*:dom将所有的内容都看成对象,所以加载节点就是在创建对象,并且将对象加到节点上面。
*:将文档看成对象,而文档中的节点也是对象,节点中的节点也是对象。
*:使用DOM操作,常用的类,这里的一些现在已经不使用了,但是我们还是需要了
解这些知识点。
Xmldocument 文档
XmlElement 元素
XmlAttribute 属性
XmlText 文本
13:使用C#来操作XML的具体步骤
1:使用xmldocument创建文档对象<声明一个xmldocument对象>
2:创建文档描述,使用xdoc对象的create方法创建需要的节点,将其添加到文档中,
3:创建根节点 将其添加到文档对象中。
4:创建内容<创建,追加>
注意:这里是追加到根节点,不是追加到文档。<规定:根节点只能有一个。>
5:追加具体的内容标签
6:设置属性id,添加具体内容。
7:使用文档对象的保存。
14:下面是创建根节点。
- public
static
void Main(string[] args) - {
- //dom将所有的内容都看做对象
- #region XML学习理解
- //1:使用XmlDocument创建文档对象
- XmlDocument xdoc=new XmlDocument(); //声明xml文档的格式
- //2:创建文档描述 使用xdoc对象的create系方法创建需要的节点,在将其添加到xdoc里面
- XmlDeclaration xroot=xdoc.CreateXmlDeclaration("1.0","utf-8",null);
- xdoc.AppendChild(xroot); //使用父节点.AppendChild(子节点)添加到文档上面
- //3:创建根节点
- XmlElement xroots=xdoc.CreateElement("personahui");
- xdoc.AppendChild(xroots);
- //4:使用save来保存文档
- xdoc.Save("ahui.xml");
- #endregion
- }
文档显示结果,其在bin/Debug文件下面保存。


15:创建内容。
- //3:创建根节点
- XmlElement xroots=xdoc.CreateElement("personahui");
- xdoc.AppendChild(xroots);
- //4:创建具体内容
- var person=xdoc.CreateElement("person");
- xroots.AppendChild(person);
- //5:在Person中追加
- XmlElement name = xdoc.CreateElement("name");
- person.AppendChild(name);
- XmlElement age = xdoc.CreateElement("name");
- person.AppendChild(age);
- XmlElement sex = xdoc.CreateElement("name");
- person.AppendChild(sex);
- //4:使用save来保存文档
- xdoc.Save("ahui.xml");

- //5:在Person中追加
- XmlElement name = xdoc.CreateElement("name");
- person.AppendChild(name);
- name.SetAttribute("");
添加这一句就是在name中添加了一个id对象,并为其赋值为0001,下面是一种老式的方法。
- //6:追加ID
- //name.SetAttribute("id", "0001");
- var id = xdoc.CreateAttribute("id");
- id.Value = "";
- person.SetAttributeNode(id);

16:在name中添加具体的值
- //7:在name中添加具体的值
- var namevalue = xdoc.CreateTextNode("阿辉");
- name.AppendChild(namevalue);
显示内容
- <?xml version="1.0" encoding="utf-8"?>
- <personahui>
- <person
id="002"> - <name>阿辉</name>
- <name />
- <name />
- </person>
- </personahui>
XML基础学习01的更多相关文章
- xml基础学习笔记05
Xpath快速解析 如题一样,本篇主要说说Xpath快速查找XML文档 * Xpatn.Xquery,是专门用来查询xml的语言 * 查询xml非常快 Xpatn.Xquery,是专门用来 ...
- xml基础学习笔记01
注意:刚刚看了网上对于XML中的标签,节点和元素?到底应该怎么表述?起初我也有这个疑惑,现在我的想法是:下面出现node的应称作节点,节点对象.element应称作元素,毕竟这更符合英文的本意.至于标 ...
- xml基础学习笔记03
继续上篇xml学习笔记,坚持.坚持.再坚持啊.... 本篇主要记录: 35.XML节点的删除与修改 36集.用XML制作RSS订阅源 <?php /* 笔记: 35.XML节点的删除与修改 使用 ...
- 转载---SQL Server XML基础学习之<5>--XQuery(query)
本章写一些SQL Server XML的一些XQuery基础语法,主要讲的query查询语法 T-SQL 支持用于查询 XML 数据类型的 XQuery 语言的子集. XQuery 基于现有的 XPa ...
- XML 基础学习
在w3school看到了XML的教程,想到以前工作学习中也接触到了XML,但只是简单搜索了解了下,没有认真去学习XML的基础,所以现在认真看下其基础部分,并写篇博客作为笔记记录下. XML 简介 XM ...
- xml基础学习笔记04
今天继续xml学习,主要是:SimpleXML快速解析文档.xml与数组相互转换 .博客中只是简单的做一个学习记录.积累.更加详细的使用方法,可以查看php手册 1.SimpleXML快速解析文档 前 ...
- xml基础学习笔记02
接着上次的xml笔记01 ,记录一下如何DOM创建xml 一.由于没有特意来写博客,都是在程序中用注释的方法记录笔记,整理过来难免格式错误,排版什么的,大家好事看不懂就仔细看给出的代码加上注释,一定会 ...
- spring基础学习01
spring基础 Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用 IOC控制反转 把创建对象和维护对象之间的关系权利 ...
- xml 基础学习备忘
<?xml version="1.0" encoding="UTF-8"? standalone="yes"> 这里的encod ...
随机推荐
- ORACLE EXP/IMP的使用详解
导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp 是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的 ...
- 熟用js中的Date
js中的Date类型是使用UTC(国际协调时间)自1970年1月1日午夜(零时)开始,经过的毫秒数来保存日期. 1. 创建日期对象 ---> 获得当前日期和时间 var now = new ...
- Ping!
我知道我很久没有更新这个博客了,所以特意来更新一下,骚扰一下各位订户.我有几年没有写过很具体跟技术相关的文章了,而跟职业发展相关的文章也半年没更新了,所以最近准备开始写写技术文章.在此之前,我要先完结 ...
- 内存角度探寻C++面向对象 之 继承、多态
一,简单继承: #include <iostream> class TableTennisPlayer { private: int id; public: TableTennisPlay ...
- 在 lua 中实现函数的重载
在 lua 中实现函数的重载.注:好吧,lua中原来可以实现重载...local function create() local arg_table = {} local function dispa ...
- fir.im Weekly - 如何用 iPad 创造技术生产力
传播学大师麦克卢汉有一个著名理论--「 媒介即讯息,媒介是人的延伸」,在当代,表现更为明显的是「工具即为人的延伸」,工具使人自由.那么,我们究竟需要什么样的工具释放技术生产力?本期 fir.im We ...
- Leetcode 35 Search Insert Position 二分查找(二分下标)
基础题之一,是混迹于各种难题的基础,有时会在小公司的大题见到,但更多的是见于选择题... 题意:在一个有序数列中,要插入数target,找出插入的位置. 楼主在这里更新了<二分查找综述>第 ...
- 为什么说基于TCP的移动端IM仍然需要心跳保活?
1.前言 很多人认为,TCP协议自身先天就有KeepAlive机制,为何基于它的通讯链接,仍然需要在应用层实现额外的心跳保活?本文将从移动端IM实践的角度告诉你,即使使用的是TCP协议,应用层的心跳保 ...
- Python流程控制语句
人们常说人生就是一个不断做选择题的过程:有的人没得选,只有一条路能走:有的人好一点,可以二选一:有些能力好或者家境好的人,可以有更多的选择:还有一些人在人生的迷茫期会在原地打转,找不到方向.对于相信有 ...
- Mybatis 缓存
1. 一级缓存:其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空. 2. 二级缓存与一级缓存其机制相同,不同在于其存 ...