易语⾔htmlxpath,史上最强html解析库语法组成:指令
3⼤基本语法:标签名  .class值  #id值
多条指令使⽤语法:指令1 > 指令2 > 指令3 > ...
基本语法规范:
----------------------------------------------------
字符串和属性使⽤单引号或者双引号引起来
----------------------------------------------------
基本函数:
----------------------------------------------------
find(属性,内容)  为查属性值为内容的标签
fuzzyfind(属性,内容)  为查属性值包含内容的标签
tojson(json节点名称,提取的节点名称,⽣成json字段别名,提取的属性)
tojson将来可以处理复杂嵌套,⽬前只⽀持⼀层对象,,多个属性,例如:
{
"test":[
{
"href":"www.baidu"
},
{
"href":"www.baidu"
}
]
}
//将来会根据需求增加⼀些api
参数2内置属性对应:
this => ⾃⾝节点
如不是上述name则为表达式,例如:
div > .info:tojson(NodeList,div>a,link,href)
html href属性上述表达式 选取div节点后class为info的节点并且提取此节点下的 div>a>p ⼦节点的href属性
NodeList为⽣成json的节点名称,link⽣成json字段别名
{
"NodeList":[
{
"link":"//book.qidian/info/1001324565"
}]
}
参数3内置属性对应:
Text => 节点内容
Html => 节点html
如不是上述name则提取属性内容
例如:
div>h4>a:tojson(NodeList,this,href,href):tojson(NodeList,this,title,Text) {
"NodeList":[
{
"href":"//book.qidian/info/1001324565",
"title":"降临诸天"
},
{
"href":"//book.qidian/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_')
----------------------------------------------------

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。