__call = select

This commit is contained in:
Wouter Scherphof 2013-03-19 22:32:24 +01:00
parent 94a1d8259a
commit 01c38b022d
2 changed files with 7 additions and 4 deletions

View File

@ -89,7 +89,7 @@ function ElementNode:close(closestart, closeend)
end
end
function ElementNode:select(s)
local function select(self, s)
if not s or type(s) ~= "string" then return {} end
local subjects = Set:new({self})
local resultset
@ -116,4 +116,7 @@ function ElementNode:select(s)
return resultset:tolist()
end
function ElementNode:select(s) return select(self, s) end
ElementNode.mt.__call = select
return ElementNode

View File

@ -51,7 +51,7 @@ select("ul > *")
select("body [class]")
select("body > [class]")
local sel, chapters = root:select("ol.chapters > li"), {}
local sel, chapters = root("ol.chapters > li"), {}
for i,v in ipairs(sel) do
table.insert(chapters, v:getcontent())
end
@ -60,10 +60,10 @@ for i,v in ipairs(chapters) do
print(i, v)
end
local sel, contacts = root:select("ul.contacts > li"), {}
local sel, contacts = root("ul.contacts > li"), {}
for i,v in ipairs(sel) do
local c = {}
for fi,fv in ipairs(v:select("span[class]")) do
for fi,fv in ipairs(v("span[class]")) do
c[fv.classes[1]] = fv:getcontent()
end
contacts[v.id] = c