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

访问密码统一为:3158

查看: 2086|回复: 0

zyXml解析1.0含源码

[复制链接]

70

主题

70

帖子

431

积分

龆年(髫年)

Rank: 3Rank: 3

积分
431
发表于 2020-5-25 17:22:53 | 显示全部楼层 |阅读模式

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[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开始的。


下载链接:https://t00y.com/file/20110282-445286304

3Q4T网,编程学习交流基地。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表