脚本开发,脚本学习,辅助软件,各种工具软件

叶帅 发表于 2020-5-25 17:22:53

zyXml解析1.0含源码

zyXML 是一个轻便、小巧的,纯易语言代码来解析XML的模块。优点:1、不依赖任何DLL、支持库、系统组件(Microsoft.XMLDOM等对象)2、支持UTF-8 、UTF-16 等编码3、支持 XPath 语法来查询节点4、支持 CDATA 5、开源(如果有任何问题可以自己修改)缺点:1、加载速度稍微逊色于支持库,但是查询速度很快。2、不支持DTD,也就是类似于如下的节点    <!DOCTYPE note [      <!ELEMENT note (to,from,heading,body)>    <!ELEMENT to      (#PCDATA)>    <!ELEMENT from    (#PCDATA)>    <!ELEMENT heading (#PCDATA)>    <!ELEMENT body    (#PCDATA)>]>3、XPath查询语法支持不全(要全部支持太麻烦了,实在没精力去解析了) 目前支持的XPath 语法有限,不支持的有:   1、查找只能返回节点,而不能返回属性,当然查找条件可以有属性,如:节点名[@属性名='属性值']   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选取属于bookstore子元素的第一个book 元素。
/bookstore/book选取属于 bookstore 子元素的最后一个book 元素。
/bookstore/book选取属于bookstore 子元素的倒数第二个book 元素。
//title[@lang]选取所有拥有名为 lang 的属性的title 元素。
//title[@lang='eng']选取所有title 元素,且这些元素拥有值为eng的lang 属性。
/bookstore/book选取bookstore元素的所有book 元素,且其中的price元素的值须大于35.00。
/bookstore/book/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开始的。
下载链接:https://t00y.com/file/20110282-445286304

页: [1]
查看完整版本: zyXml解析1.0含源码