《C#完全自学手册电子图书》\第12章 XML技术和Web服务
XML是"eXtensible Markup Language"的缩写,即可扩展标记语言。XML对于语法有着严格的规定,只有当一个XML文档符合语法规定,处理程序才能对它加以分析和处理。每个XML文档都有一个逻辑结构和物理结构。从逻辑上讲,文档由声明(declaration)、元素(element)、注释(comment)、字符引用(character reference)和处理说明(processing instruction)组成 ### C#完全自学手册电子图书:第12章 XML技术和Web服务 #### 12.1 XML概述 **XML**,全称为“eXtensible Markup Language”(可扩展标记语言),是一种用于标记数据的标准语言,它允许用户自定义标记以适应特定的数据交换需求。XML在语法上有严格的规定,确保数据的准确性和一致性。为了更好地理解XML的基础概念,本章节将详细介绍XML的核心组成部分及其基本用法。 ##### 1.1 XML声明 XML文档通常以XML声明开始,这有助于指定文档使用的XML版本、编码方式以及是否独立于其他文档存在。XML声明采用以下格式: ```xml <?xml version="1.0" encoding="gb2312" standalone="no"?> ``` - **Version**: 必须包含此属性,以指明使用的XML版本,通常为`1.0`。 - **Encoding**: 指定文档使用的字符编码,如`gb2312`或`UTF-8`。 - **Standalone**: 指示文档是否依赖外部DTD(Document Type Definition)。值可以是`yes`或`no`。 ##### 1.2 元素 元素是XML文档的基本组成部分之一,由起始标记、结束标记以及其中的内容组成。例如: ```xml <book> <title>学习XML</title> <author>张三</author> </book> ``` - **起始标记**与**结束标记**:必须配对使用。如果元素为空,则可以简化写法,如`<empty/>`。 - **嵌套规则**:元素必须正确嵌套,不能交叉。 - **标记命名规则**:标记名称应以字母、下划线或冒号开头,后续可以包含字母、数字等字符,但不能包含空格。标记名不能以“XML”开头。 - **属性**:标记可以包含多个属性,如`<book id="1">`。 ##### 1.3 CDATA节 为了在XML文档中包含不会被解析器误解为标记的数据,可以使用`CDATA`节。例如: ```xml <![CDATA[这里的数据将被视为文本数据,而不是标记。]]> ``` - **注意**:CDATA文本中不能包含字符串`"]]>"`,且不能嵌套。 ##### 1.4 注释 XML支持使用注释来添加非显示性的信息,这些注释不会被解析器处理。注释格式如下: ```xml <!-- 这是一条注释 --> ``` - **限制**:注释不能出现在XML声明之前;注释中不能包含连续两个减号`--`;注释不能嵌套。 ##### 1.5 处理指令 处理指令用于向处理XML文档的应用程序传递信息。例如: ```xml <?myapp someinfo="value"?> ``` - **格式**:`<?指令名 指令信息?>`。 #### 12.2 XML常用对象 在.NET Framework中,处理XML文档的主要类库位于`System.Xml`命名空间内。以下是一些常用的XML对象: ##### 2.1 XmlDocument `XmlDocument`对象用于加载、操作和保存XML文档。 ##### 2.2 XmlNode `XmlNode`表示XML文档中的一个节点,提供了多种方法和属性来操作节点数据。 - **Name属性**:获取节点的名称。 - **Value属性**:获取或设置节点的值。 - **BaseURI属性**:获取当前节点的基URI。 - **ChildNodes属性**:获取节点的所有子节点。 - **FirstChild属性**:获取节点的第一个子级。 - **HasChildNodes属性**:检查节点是否有子节点。 - **LastChild属性**:获取节点的最后一个子级。 - **NamespaceURI属性**:获取节点的命名空间URI。 - **WriteTo方法**:将当前节点写入指定的`XmlWriter`对象。 - **SelectSingleNode方法**:根据XPath表达式选择第一个节点。 - **SelectNodes方法**:根据XPath表达式选择一组节点。 - **RemoveChild方法**:删除指定的子节点。 - **RemoveAll方法**:删除当前节点的所有子节点。 通过以上介绍,读者可以了解到XML文档的基本结构及其在.NET Framework中的操作方法。XML作为一种强大的数据交换格式,在Web服务和跨平台应用开发中扮演着重要的角色。深入学习并掌握XML技术,对于提升编程技能具有重要意义。
剩余24页未读,继续阅读
- 粉丝: 9
- 资源: 42
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【创新无忧】基于开普勒优化算法KOA优化相关向量机RVM实现数据多输入单输出回归预测附matlab代码.rar
- 【创新无忧】基于粒子群优化算法PSO优化广义神经网络GRNN实现电机故障诊断附matlab代码.rar
- 【创新无忧】基于粒子群优化算法PSO优化广义神经网络GRNN实现光伏预测附matlab代码.rar
- 【创新无忧】基于粒子群优化算法PSO优化极限学习机KELM实现故障诊断附matlab代码.rar
- 【创新无忧】基于粒子群优化算法PSO优化广义神经网络GRNN实现数据回归预测附matlab代码.rar
- 【创新无忧】基于粒子群优化算法PSO优化极限学习机ELM实现乳腺肿瘤诊断附matlab代码.rar
- 【创新无忧】基于凌日优化算法TSOA优化广义神经网络GRNN实现电机故障诊断附matlab代码.rar
- 【创新无忧】基于粒子群优化算法PSO优化相关向量机RVM实现数据多输入单输出回归预测附matlab代码.rar
- 【创新无忧】基于粒子群优化算法PSO优化相关向量机RVM实现北半球光伏数据预测附matlab代码.rar
- 【创新无忧】基于凌日优化算法TSOA优化广义神经网络GRNN实现数据回归预测附matlab代码.rar
- 【创新无忧】基于凌日优化算法TSOA优化广义神经网络GRNN实现光伏预测附matlab代码.rar
- 【创新无忧】基于凌日优化算法TSOA优化极限学习机ELM实现乳腺肿瘤诊断附matlab代码.rar
- 【创新无忧】基于凌日优化算法TSOA优化相关向量机RVM实现数据多输入单输出回归预测附matlab代码.rar
- 【创新无忧】基于凌日优化算法TSOA优化极限学习机KELM实现故障诊断附matlab代码.rar
- 【创新无忧】基于凌日优化算法TSOA优化相关向量机RVM实现北半球光伏数据预测附matlab代码.rar
- 【创新无忧】基于龙格库塔优化算法RUN优化广义神经网络GRNN实现电机故障诊断附matlab代码.rar