【文件属性】:
文件名称:zyXml解析1.0含源码-易语言
文件大小:216KB
文件格式:ZIP
更新时间:2021-06-13 18:42:31
易语言模块
zyXML
是一个轻便、小巧的,纯易语言代码来解析
XML的
模块。
优点:
1
、不依赖任何
DLL
、支持库、系统组件(
Microsoft.XMLDOM
等对象)
2
、支持
UTF-8
、
UTF-16
等编码
3
、支持
XPath
语法来查询节点
4、支持 CDATA
5
、开源(如果有任何问题可以自己修改)
缺点:
1
、加载速度稍微逊色于支持库,但是查询速度很快。
2
、不支持
DTD
,也就是类似于如下的节点
]>
3
、
XPath
查询语法支持不全(要全部支持太麻烦了,实在没精力去解析了)
XPath
具体语法可参考:
http://www.w3school.com.cn/xpath/xpath_syntax.asp
目前支持的
XPath
语法有限,不支持的有:
1
、查找只能返回节点,而不能返回属性,当然查找条件可以有属性,如:节点名
[@
属性名\n='\n\u5c5e\u6027\u503c\n']
2
、
[]
括号里面的谓语表达式
仅仅支持一个操作符号,且不支持
|
、
or
、
and
和
mod
,并且属性名不支持
*
,仅仅元素名才支持
*
3
、轴
不支持
following
、
namespace
、
preceding
和
preceding-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
元素,且这些元素拥有值为
eng
的
lang
属性。
/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
开始的。
【文件预览】:
test.e
模式区别说明.e
zyXML.ec
test.xml
zyXML.e
sheet1.xml