XML

感谢您选择唤境Evkworld!在这一篇教程里,我们将学习xml对象。

可以参考视频学习,也可以下拉查看图文讲解

xml对象允许我们将大量数据导入到引擎进行使用。例如游戏里所有角色属性的初始信息,如果使用数组或辞典需要对数据一个一个设置储存事件,操作量巨大,而xml文件,可以把所有属性放在一个文件里,直接导入引擎,进行使用。项目里可以有多个xml对象。

xml组件通常时和Ajax对象搭配使用。使用步骤是:先导入外部的xml文件,然后Ajxa请求获取存有数据的xml文件,最后通过xml对象读取到文件,就可以用xml的表达式在条件动作里使用数据了.

那么我们来演示使用步骤,首先我们要将xml文件导入到项目库中

点击下载示例xml文件,点这里下载示例工程

注意:在使用xml时,先不要在xml文件内加入注释,目前引擎打包不支持

导入xml文件

左上方项目库,点击右边加号,选择文件,打开文件库

然后点击左边加号,上传文件

文件上传完成后,接下来添加xml和Ajax对象。

添加XML对象和Ajax对象

Ajax请求数据

Ajax对象的动作里,请求项目文件可以获取xml文件数据

XML对象加载数据

当Ajax请求结束时,xml对象读取数据

使用单个数据

首先看下,xml文件的结构

使用xml对象的表达式,通过/Game/role这样的路径找到指定数据,比如第一个角色名字“法师” 的路径是/Game/role[1]
xml的索引是从1开始的,与数组有别。完整的xml表达式是XML_1.stringvalue("/Game/role[1]/name")

那么点击按钮文本显示第一个角色的名字,事件如下

可以在预览页的下方调试信息里看到Ajax请求到的数据:

效果如下

完整事件

使用所有数据

xml对象有个条件会循环路径下的所有节点,

使用它可以限制路径条件,在动作里可以简化路径表达式。

事件

效果

通过标签属性获取指定路径

下图中,给role标签加了一个名叫等级的属性。 在唤境中,可以通过属性来定位指定标签

属性的写法为:标签名[@属性名称=‘属性值’]
例如,获取等级为1的role标签下面的name:"/Game/role[等级=‘1’]/name/text()"
要注意表达式中,属性的值需要用单引号括起来,如果使用变量来表示属性值,需要这么写:"/Game/role[等级=’"&变量&"’]/name/text()"