文档库 最新最全的文档下载
当前位置:文档库 › 《易语言XML支持库入门教程》

《易语言XML支持库入门教程》

《易语言XML支持库入门教程》
《易语言XML支持库入门教程》

《易语言XML支持库入门教程》

易语言下载网址:https://www.wendangku.net/doc/8814710126.html,

目录

目录 (1)

XML发展历程 (2)

一.标记的由来 (2)

二.标记语言的由来 (2)

三.可扩展标记语言XML (3)

四.XML的基本格式 (3)

作业: (4)

第一节、关于XML支持库的简介及功能分类 (4)

一.易语言XML支持库所能实现的功能 (4)

二.易语言XML支持库按功能分类 (4)

第二节、创建类命令(一) (5)

一、XML树.创建() (5)

二、XML树.导出到文件() (6)

三、XML树.释放() (7)

四、XML树.导入() (7)

第三节、创建类命令(二) (8)

一、XML树.插入节点() (9)

二、XML树. 插入属性() (10)

三、XML树. 修改节点名()、XML树.修改节点值() (10)

四、XML树.修改属性名()、XML树.修改属性值() (12)

五、XML树.删除节点()、XML树.删除属性() (13)

第四节、操作类命令 (15)

一、XML树.取根节点名() (15)

二、XML树.取所有子节点名() (16)

三、XML树.取子节点个数() (16)

四、XML树.取子节点数() (17)

五、XML树.取子节点名() (17)

六、XML树.取节点值() (18)

七、XML树. 取全部属性名() (19)

八、XML树. 取属性值() (20)

第五节、特殊处理命令 (20)

一、XML树.批量删除节点() (20)

二、XML树. 批量取节点值() (22)

三、XML树.批量修改节点值() (22)

XML发展历程

一.标记的由来

标记行为的本身由来已久,比如我们所熟知的对财务报表的注释、差旅费用的名细等等,我们都可以把它理解为标记。标记的意思就是为某物加上记号(Marking it up),现在有很多的文本处理系统也正是基于这个原理而出现的。其中由标记引发而来的标记语言的杰出的代表之一就是xml。标记可以分为格式化标记等等。

二.标记语言的由来

1969年由于需要处理不同系统间文档的共享问题由IBM’sCharles等3位研究人员发明了一种标记语言GML。这门语言主要解决了不同系统文档的共享。然而伴随着网络应用的迅速发展HTML已经不能很好的跟上网络发展的脚步。虽然现在HTML还是网络应用的主流,但是它的局限在今天也是非常的明显。

下面看一个例子,左侧表示了所要表示的两个人员的联系方式信息,右侧是用HTML 语言进行的描述。如下图所示:

上图显示了员工的具体信息,如代号、电话等。通过这个例子大家可以体会它的不足。比如不能很好的理解“

  • TOM”的含义等等。

    HTML的局限:

    Html只支持简单的段落,不支持自定义数据的层次。

    Html要求文档过于完整。这也是它结构本身的要求所至。

    Html无法真正进行数据交换。

    Html不可以重用。

    等等。

    在这个大的背景下XML(可扩展标记语言)应运而生。

    XML也可以看作是GML的优化,它是一种元语言,可以用来描述其他语言。

    由于XML是基于文本格式的,开发者可以很容易在不同的程序中对它的数据进行交换。

    面对无限的发展空间,XML也被业界赋予了更高的评价和期待—从未来十大主流技术中的排名就可以看出。

    XML以它的信息共享、数据传输、数据的重用、分离数据和表示、可扩展性、文档包含语义等一系列的优势而很快的得到了业界的认可。也正式基于上述情况,易语言公司也对这样的技术提供了XML解析支持库的支持。

    三.可扩展标记语言XML

    从上述种种我们可以明显的看到通过XML的标记表示数据的逻辑结构,这样就保持了数据库的一些相关特性,包括数据查询等,而且很容易进行相应的程序开发。然后通过程序把逻辑处理后的XML转化为相应显示风格的HTML。

    本书要求在学习易语言XML支持库的时候,您应该已经掌握的知识有:XML基础。但有的读者可能第一次接触到XML,因此在这里还是给大家简单介绍一下。实际上,只要你会一些HTML语言的基础,学这个是非常容易的,而且如果你掌握了XML语言的手写知识,那么使用易语言的XML解析支持库也将是轻而易举。

    注意:本读物中没有特别注释的例程将沿用前一个例程;

    四.XML的基本格式

    XML文档由:声明,根节点、子节点、节点属性、节点值组成。其中声明基本是固定的,如果改变将不能正确显示,根节点是必须而且是唯一的。如下表所示:

    符集,也不要去改变它。实际上它就是XML文件的标识。

    第二行与最后一行就是根节点,其中的内容就是子节点内容。子节点下面还可以再加子节点,形成孙节点。

    易语言的XML支持库实际的就是读写XML文档,你也可以不用支持库,直接用手工去写一个文本。

    作业:

    手工写一个XML文档,描述你身边的人或同事,或某些事物。

    第一节、关于XML支持库的简介及功能分类

    一.易语言XML支持库所能实现的功能

    伴随着网络应用的迅速发展HTML(超文本标记语言)已经不能很好的跟上网络发展的脚步。因此,在这个大的背景下XML(可扩展标记语言)应运而生。面对无限的发展空间,XML也被业界赋予了更高的评价和期待—从未来十大主流技术中的排名就可以看出。虽然以上种种大都是业界一些主观的评论,但是从目前的实际应用情况来看,也是可以左证XML 技术将拥有美好的前景的。

    与此同时,大有吴涛易语言软件开发有限公司秉承自己一贯优良的发展理念—编程语言民族化、民族语言简单化、简单语言实用化,同时也为了让更多的编程爱好者能更快的学习新的开发理念、掌握新的开发技术,为大家提供更宽广的开发环境从而迅速将这样一门优秀的技术容入到易语言中,因此也就形成了我们今天所要讲解的XML支持库。

    在易语言提供的该XML支持库中,将以针对XML文件的操作为主线来展开的。因此,可以想象的到,该支持库主要功能是如何创建XML文件、如何使XML文件的节点中有属性、如何取出数据等等。

    易语言的XML支持库并没有相对应的组件来供大家使用,而是使用了面向对象的开发模式,也就是通常我们大家所熟知的类。因此在调用XML支持库的时候,需要首先声明XML树对象,通过这个声明的XML树(也就是XML支持库)对象来调用其中的所有方法。

    二.易语言XML支持库按功能分类

    2、1创建类命令(一):

    创建、释放、导入、导出;

    2、2创建类命令(二):

    插入节点、插入属性、修改节点名、修改节点值、修改二进制值、修改属性名、修改属性值、删除节点、删除属性;

    2、3操作类命令:

    取根节点名、取子节点数、取子节点名、取节点值、取二进制值、取全部属性名、取属性值、取根节点名文本、取子节点个数、取所有子节点名、取节点值文本、取节点值字节集、取属性个数、取所有属性名、取属性值文本、取XML数据;

    2、4特殊处理命令:

    批量删除节点、批量取节点值、批量修改节点值;

    以上的功能分类,将成为本讲义的主线,我们也将围绕该分类,进行该支持库命令的逐一讲解,同时我们也将通过实例来配合讲解。

    第二节、创建类命令(一)

    创建、释放、导入、导出;

    一般的XML文件基本结构就是由声明和若干的节点(元素)组成。通常我们把最上层的节点称为根节点。本节我们将使用该支持库中的“创建、释放、导入、导出”来尝试创建、生成、导入我们第一个XML文件

    在第一节中我们已经交代过,易语言的XML支持库是以类的形式存在的。因此,想使用它就必须首先声明一个XML树对象。我们在这里声明一个obj_xml的XML树对象。

    代码实现如下:

    当我们完成声明后,我们就可以使用所有XML树对象中的所有方法,也可以理解为XML支持库中的所有方法了

    一、XML树.创建()

    首先我们去创建一个.XML文件,这里我们就使用到了XML树的创建()方法。

    代码实现如下:

    XML树.创建()概述:

    该方法将在系统内存中按要求添加一个指定根节点的且只包含一个节点的XML树,并且该XML树只抽象存在于内存中,并没有生成对应的物理实现。

    在本例程中将在内存中创建了一个根节点为“易XML文件”的XML文件。

    二、XML树.导出到文件()

    如果想要将上述内存中的XML树对象obj_xml实际的显示出来并形成文件还需要配合XML树.导出到文件()

    XML树.导出到文件()概述:

    使用该方法可以将已经创建于内存中的XML树以.xml的形式保存成XML文件。

    在我们这个例程中,我们将要求在创建了XML文件的同时,还需要将该文件显示在编辑框中。

    运行效果如图:(程序的部分截图)

    具体的代码实现如下:

    可以通过该代码段知道,将在本程序的运行目录下创建一个名为Eexc.xml的文件。

    三、XML树.释放()

    程序编写到这里,如果细心的用户可能会发现XML树.创建()是将XML树创建在内存当中,如果每次调试的时候忘记消除它,那么它将在内存中占据很大的资源。这样做的后果对系统的维护是十分的不利,因此每当创建完毕要退出程序的时候就需要释放XML树所占据的内存空间,这就使用到我们这里提到的XML树.释放()方法。

    XML树.释放()概述:

    该方法将内存中的已经创建的XML树释放。

    因为是对内存进行操作,因此并没有非常直观的显示出来具体的实现过程。

    代码实现如下:

    四、XML树.导入()

    上述所讲解的3个方法主要是教大家通过代码动态的创建一个XML文件,如果大家想要打开一个已经存在的XML文件,就需要去使用XML树对象的另一个方法—XML树.导入()方法。

    XML树.导入()概述:

    通过该方法,直接调用一个已经存在的XML文件。但是需要注意的是,该方法也仅仅是在内存中按照该XML文件的具体结构创建了一个相对应的XML树。因此,该方法和XML 树.创建()方法是一个工作原理,但是区别在于就是XML树.创建()方法是动态的在内存中创建一个XML树,而XML树.导入()方法是按照一个已经存在的XML文件的结构在内存中创建一个完全对应的XML树。

    这里,我们动手导入我们刚才已经创建的Eexc.xml文件

    运行效果图:

    代码如下:

    本段代码就可以实现上面运行的效果,并且会将选中的XML文件以文本的形式添加到组件编辑框_显示XML树中。

    这一节主要讲解的是简单创建XML文件,需要大家做的是自己动创建一个XML文件。第三节、创建类命令(二)

    插入节点、插入属性、修改节点名、修改节点值、修改二进制值、修改属性名、修改属性值、删除节点、删除属性;

    通过上一节的讲解,期待的效果是使大家明白如何使用易语言的XML支持库去创建一

    个简单的XML文件。但是仅仅掌握这些知识是不够的,毕竟XML本身就拥有一个很复杂的结构。如果想创建一个比较完整的XML文件还需要大家掌握添加属性、给属性添加值、添加子节点等等知识点。想要达到这个目标,就需要大家继续学习。

    一、XML树.插入节点()

    既然每个XML文件有一个根节点,那么就可以想象的出它本身应该有子节点。只是,子节点是可以无限的多而不是唯一。在XML文件中子节点可以无限扩展,既可以拥有若干的子节点,同时子节点也可以拥有若干的“同辈”子节点,他们可以统一的成为根节点的子节点,同时又是它们自身下的所有子节点的父节点。

    在第一节中,我们已经创建了一个Eexc.xml文件,但是它是只有一个根节点的XML 文件。如果我们想让它拥有一个名为“第一个节点”的子节点,那么我们将使用到XML树.插入节点()方法。

    XML树.插入节点()概述:

    对指定的节点进行操作,在它的下级创建一个子节点,此时被指定的节点就成为该子节点的父节点。

    同样,我们针对Eexc.xml文件进行操作,在它的根节点下添加一个名为“第一层子节点”的子节点

    运行效果图:

    通过这幅图片大家应该看到,在<易XML文件>和之间多了<第一层子节点>的这个子节点,这个效果就是通过XML树.插入节点()这个方法实现的。

    代码如下:

    通过这个命令的学习,大家应该作到如何进行多个子节点的添加。

    二、XML树. 插入属性()

    了解XML的朋友都知道,XML的结构并不但但是他的节点,还有对节点的属性。如何添加节点的属性,将是我们接下来的学习任务。

    我们同样使用Eexc.xml文件,对他下级的“第一层子节点”添加“备注”属性,然后赋值为“演示”。

    XML树. 插入属性()概述

    对指定节点添加属性操作具体的操作方法和XML树.插入节点()方法是一样的,但是区别就是插入属性()方法是给对应的节点添加一个属性,而不是从新创建属性节点。

    运行效果图:

    大家注意看画线的部分,这里是就是我们为第一层子节点所添加的备注属性。

    代码如下:

    结合该代码实现的图片和效果图,我们可以清晰的看到,如何对一个指定的节点进行属性的插入。

    三、XML树. 修改节点名()、XML树.修改节点值()

    根据所提供的方法名称就可以知道我们可以根据提供的方法去修改已经创建的节点名称和节点的值。

    XML树.修改节点名()、XML树.修改节点值()概述

    XML树.修改节点名()该方法会修改指定节点的名称

    XML树.修改节点值()该方法将修改指定节点的值

    这里我们继续对Eexc.xml操作,将它的字节点<第一层字节点备注=“演示”>考虑如

    何添加多层子节点修改为<节点一备注=“演示”>考虑如何添加多层子节点

    具体的代码实现为:

    运行效果图为:

    这个效果图与以前的Eexc.xml的区别就是将字节点<第一层节点>换成了<节点一>。同样的道理,我们现在要将节点一的值“考虑如何添加多层子节点”换成“姓名”,将采用同样的操作手法,但是需要使用的命令就是前边介绍的XML树.修改节点值()。

    实现如下:

    运行效果图:

    四、XML树.修改属性名()、XML树.修改属性值()

    XML节点拥有自定义的属性,这个也是和HTML的区别之一。这两个方法将让我们对XML节点的属性进行修改。

    XML树.修改属性名()、XML树.修改属性值()概述

    XML树.修改属性名()修改指定节点属性名称

    XML树.修改属性值()修改指定节点属性的值

    我们知道,现在的Eexc.xml文件中的节点一的属性是备注,现在我们就将这个“备注”属性进行修改成“用户属性”属性。

    代码如下:

    运行效果截图:

    同样对用户属性的值进行更改,我们需要使用XML树.修改属性值()

    代码如下:

    运行效果图:

    五、XML树.删除节点()、XML树.删除属性()

    在讲解这两个方法之前,需要我们创建一个新的XML文件Eexc_delete.xml文件进行操作。具体的格式如图:

    既然可以修改节点、属性,因此也可以对属性节点进行删除操作。

    XML树.删除节点()、XML树.删除属性()概述

    XML树.删除节点()删除指定的节点;

    XML树.删除属性()删除指定节点的属性;

    在这个例程中,我们将删除节点一的属性,然后再将节点一删除。首先删除属性。

    代码如下:

    运行效果图:

    通过这图,可以清楚的看到将节点一的用户属性彻底删除,这个方法需要注意的是直接将属性及属性值一起删除,因此不需要在删除属性的时候在去考虑如何删除对应的属性值。

    接下来我们去删除节点一这个节点。使用的方法就是XML树.删除节点()。

    代码如下:

    运行效果图:

    第三节的课程结束。期望的学习目标是,能够使用该XML支持库创建一个完成的XML 文档。多节点、多属性、多层子节点等等。

    第四节、操作类命令

    取根节点名、取子节点数、取子节点名、取节点值、取二进制值、取全部属性名、取属性值、取根节点名文本、取子节点个数、取所有子节点名、取节点值文本、取节点值字节集、取属性个数、取所有属性名、取属性值文本、取XML数据;

    本节将主要讲述关于XML文件的操作的一些知识点。由于本节的许多方法有相似的地方,因此我们将着重选取有代表性的几条方法进行讲解。本节将主要使用的方法是:取根节点名、取所有子节点名、取子节点个数、取子节点数、取子节点名、取节点值、取全部属性名、取属性值。

    一、XML树.取根节点名()

    使用本方法,可以将指定XML文件的根节点名称提出。

    XML树.取根节点名()概述

    本方法可以将根节点提出,并放置在该方法的第2个参数中。这就是说第2个参数必须是文本型的变量。这个环节是本方法的难点。

    现在我们仍然使用Eexc.xml文件进行操作,并将取出的根节点放置在列表框中。

    代码如下:

    运行效果图:

    二、XML树.取所有子节点名()

    看到本方法的名称可以很直观的想象到就是将指定的XML的节点全部提取出来

    XML树. 取所有子节点名()概述

    可以将所有指定节点下的子节点名称提取出来,并且需要保存在一个文本数组变量中。

    我们在对Eexc.xml操作之前,首先对这个XML文件进行改动需要添加两个子节点,分别为<节点二><节点三>,然后针对这个文件提取它所有的节点名。

    运行效果图:

    代码如下:

    三、XML树.取子节点个数()

    有的时候,我们需要知晓指定XML文件的某个节点下有多少个子节点。E语言的XML 支持库中,明确了取子节点个数()这个方法。

    XML树.取子节点个数()概述

    通过使用本方法,可以将指定XML文件的某个节点下的所有子节点个数显示出来。

    运行效果图:

    代码如下:

    四、XML树.取子节点数()

    在易语言的XML支持库中,能完成查询节点个数的并不完全是取子节点个数()这一个方法,我们也可以通过取子节点数完成相同功能。

    XML树.取子节点数()概述

    同样,这个方法也需要为它指定节点,对指定节点下的所有子节点数进行操作。并且,该数值将被自动赋予给这个方法中的第二个参数。

    现在我们提取Eexc.xml文件中根节点下的所有子节点的数值,并用信息框显示出来。

    运行效果图:

    代码如下:

    五、XML树.取子节点名()

    前边我们已经讲解过如何提取指定节点下的所有子节点名,但是正如前面我们提到过的一样,这里也并不仅仅只有一个取所有子节点名这个方法。还有一个功能相近的方法就是取子节点名()。

    XML树.取子节点名()概述

    该方法会根据内部的计算机制,将提取的所有子节点名自动添加到这个方法中的第二个参数中。可以想象的出,是一个文本型的数组变量。

    同样,我们提取Eexc.xml文件中根节点下的所有子节点名称,并且添加到列表中。

    运行效果图:

    代码如下:

    六、XML树.取节点值()

    到这里我们一直是对节点的个数、节点名进行操作,现在我们需要对节点的值进行提取。这就需要我们使用XML树.取节点值()方法。

    XML树.取节点值()概述

    本方法将返回一个逻辑值。运行的结果将被放置在这个方法的第二个参数中,由于节点的值只能有一个,因此该方法的第二个参数就是一个文本型变量。

    现在我们提取Eexc.xml中的第一个节点的值,并用信息框显示出来。

    运行效果图:

    代码如下:

    七、XML树. 取全部属性名()

    对于属性的操作也同样是该支持库中的重点;

    XML树.取全部属性名()

    使用本方法,可以提取指定节点的属性名。但是这里需要注意的是,它和前面所提到过的几个方法不同的地方是,只能一个指定的且有属性的节点进行操作,否则将失败。

    和前几个方法也有相同的地方,就是它的第二个参数也是将在执行本方法后自动添加值。

    运行效果图:

    代码实现图:

    如果该节点的属性有多个,那么本代码将可以将所有的属性名全部提取出来。

    八、XML树. 取属性值()

    在这个支持库中,可以很容易的发现它的规律。也就是每当有一个对对象名进行操作的方法的时候,必然会有一个对该对象值进行操作的方法。因此,当我们能对属性进行操作的时候,就必然可以对属性的值进行操作。

    XML树.取属性值()概述

    通过本方法,将非常轻松的提取指定节点属性的值。

    这里我们将提取节点一中的属性值,因为我们的程序例程比较简单,因此我们可以直接得出属性的值。这里就要求大家思考如何在不了解XML文件结构的时候能提取指定节点属性的值。

    运行效果图:

    代码如下:

    本节教学目的,就是在前几节的基础上,能够将已经创建完整的XML文件进行计算操作,包括提取节点名、节点数量、节点属性、节点值等。

    第五节、特殊处理命令

    批量删除节点、批量取节点值、批量修改节点值

    一、XML树.批量删除节点()

    对于一个XML文件如果想要删除它的全部子节点,要怎么操作?这个是一个很普遍的问题,既要保留根节点又要删除所有的子节点,这里就使用到了批量删除节点的方法。

    XML树.批量删除节点()概述

  • 相关文档