易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

zyXml解析1.0含源码   [复制链接]

    2018-09-04 18:53:58
    易语言模块
    易语言资源网
    4624 次浏览
    来源链接

zyXML是一个轻便、小巧的,纯易语言代码来解析XML的模块。

优点:

1、不依赖任何DLL、支持库、系统组件(Microsoft.XMLDOM等对象)

2、支持UTF-8UTF-16等编码

3、支持XPath语法来查询节点

4、支持 CDATA

5、开源(如果有任何问题可以自己修改)

缺点:

1、加载速度稍微逊色于支持库,但是查询速度很快。

2、不支持DTD,也就是类似于如下的节点

]>

3XPath查询语法支持不全(要全部支持太麻烦了,实在没精力去解析了)

XPath具体语法可参考:http://www.w3school.com.cn/xpath/xpath_syntax.asp

目前支持的XPath语法有限,不支持的有:

1、查找只能返回节点,而不能返回属性,当然查找条件可以有属性,如:节点名[@属性名='属性值']

2[]括号里面的谓语表达式仅仅支持一个操作符号,且不支持|orandmod,并且属性名不支持*,仅仅元素名才支持*

3、轴不支持followingnamespaceprecedingpreceding-sibling

4、函数都不支持,但是可以有如下使用:

node()可返回所有节点且不管节点是什么类型

cdata()仅查找CDATA类型的节点

text()仅查找文本节点

comment()仅查找注释节点

*仅查找元素节点

举一些支持的例子

路径表达式结果
bookstore选取bookstore元素的所有子节点。
/bookstore选取根元素bookstore
注释:假如路径起始于正斜杠(/ ),则此路径始终代表到某元素的绝对路径!
bookstore/book选取属于bookstore的子元素的所有book元素。
//book选取所有book子元素,而不管它们在文档中的位置。
bookstore//book选择属于bookstore元素的后代的所有book元素,而不管它们位于bookstore之下的什么位置
/bookstore/book[1]选取属于bookstore子元素的第一个book元素。
/bookstore/book[last()]选取属于bookstore子元素的最后一个book元素。
/bookstore/book[last()-1]选取属于bookstore子元素的倒数第二个book元素。
//title[@lang]选取所有拥有名为lang的属性的title元素。
//title[@lang='eng']选取所有title元素,且这些元素拥有值为englang属性。
/bookstore/book[price>35.00]选取bookstore元素的所有book元素,且其中的price元素的值须大于35.00
/bookstore/book[price>35.00]/title选取bookstore元素中的book元素的所有title元素,且其中的price元素的值须大于35.00
child::book选取所有属于当前节点的子元素的book节点。
child::*选取当前节点的所有子元素。
child::text()选取当前节点的所有文本子节点。
child::node()选取当前节点的所有子节点。
descendant::book选取当前节点的所有book后代。
ancestor::book选择当前节点的所有book先辈。
ancestor-or-self::book选取当前节点的所有book先辈以及当前节点(如果此节点是book节点)
child::*/child::price选取当前节点的所有price孙节点。

另外元素索引我好像弄成从0开始了,好像XPath本身索引是从1开始的。



点我下载 (已有 287 次下载)

引用模块





引用支持库





[错误报告]   上一篇:鱼刺类_多线程应用5.4含源码...     下一篇:QR二维码生成模块1.4...