易语言html xpath,史上最强html解析库

语法组成:指令

3大基本语法:标签名  .class值   #id值

多条指令使用语法:指令1 > 指令2 > 指令3 > ...

基本语法规范:

----------------------------------------------------

字符串和属性使用单引号或者双引号引起来

----------------------------------------------------

基本函数:

----------------------------------------------------

find(属性,内容)   为查找属性值为内容的标签

fuzzyfind(属性,内容)   为查找属性值包含内容的标签

tojson(json节点名称,提取的节点名称,生成json字段别名,提取的属性)

tojson将来可以处理复杂嵌套,目前只支持一层对象,,多个属性,例如:

{

"test":[

{

"href":"www.baidu.com"

},

{

"href":"www.baidu.com"

}

]

}

//将来会根据需求增加一些api

参数2内置属性对应:

this => 自身节点

如不是上述name则为表达式,例如:

div > .info:tojson(NodeList,div>a,link,href)

上述表达式 选取div节点后class为info的节点并且提取此节点下的 div>a>p 子节点的href属性

NodeList为生成json的节点名称,link生成json字段别名

{

"NodeList":[

{

"link":"//book.qidian.com/info/1001324565"

}]

}

参数3内置属性对应:

Text => 节点内容

Html => 节点html

如不是上述name则提取属性内容

例如:

div>h4>a:tojson(NodeList,this,href,href):tojson(NodeList,this,title,Text)

{

"NodeList":[

{

"href":"//book.qidian.com/info/1001324565",

"title":"降临诸天"

},

{

"href":"//book.qidian.com/info/1012835812",

"title":"某美漫的神级强化师"

}

]

}

生成json属性名称会使用参数命名,

如果提取本节点则 提取的节点名称填写 this

例如:

表达式:

div > a > div:tojson(title,this,Text,Text) //Text默认为节点内容

结果:

{

"title":{

["Text":"测试内容"]

}

}

表达式:

div > a > div:tojson(内容,this,class,class)

结果:

{

"内容":{

["class":"info"]

}

}

如某个节点下有多项提取内容可使用链式提取,

例如:

标题
2017/5/9
测试内容
标题
2017/5/9
测试内容
标题
2017/5/9
测试内容

表达式:div:tojson(title,title,title,Text):tojson(time,div[0],time,Text):tojson(data,div[1],data,Text)

结果:

{

"内容":[

{"title":"标题","time":"2017/5/9","data":"测试内容"},

{"title":"标题","time":"2017/5/9","data":"测试内容"},

{"title":"标题","time":"2017/5/9","data":"测试内容"}

]

}

----------------------------------------------------

基本功能1:

----------------------------------------------------

说明:我想获取a标签的所有内容

1

2

3

指令:a

----------------------------------------------------

基本功能2:

----------------------------------------------------

说明:我想获取id为list1的div里面的a标签的所有内容

1

2

3

4

5

6

指令1:#list1 > dl > dd > a

指令2:div:find('id','list1') > dl > dd > a

----------------------------------------------------

功能1:

----------------------------------------------------

说明:指令前面是. 则为匹配class属性,要匹配出233

233

指令:.test

----------------------------------------------------

功能2:

----------------------------------------------------

说明:指令前面是# 则为匹配id属性,要匹配出233

233

指令:#test

----------------------------------------------------

功能3:

----------------------------------------------------

说明:如果想指定标签属性筛选,要匹配出233

233
266

指令:div:find('id','test')

----------------------------------------------------

功能4:

----------------------------------------------------

说明:如果想指定标签属性模糊筛选,要匹配出233和266

233
266

指令:div:fuzzyfind('id','test_')

----------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值