Skip to content

Commit fc547ea

Browse files
committed
findnode (findfirst and findall)
1 parent 6ad00b2 commit fc547ea

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

src/xmlutils/findnode.jl

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,63 @@
1+
export findfirst, findall
2+
################################################################
3+
# Find Node
4+
################################################################
5+
# findfirst
6+
function findfirst(name::String, doc::Document, argAmlType::Type{<:AbsNode})
7+
elm = findfirst(name, root(doc), argAmlType)
8+
return elm
9+
end
10+
11+
function findfirst(name::String, node::Node, argAmlType::Type{<:AbsNormal})
12+
# if hasdocument(node)
13+
# elm = findfirst(name, node)
14+
# else
15+
elm = findfirstelm(name, node)
16+
# end
17+
return elm
18+
end
19+
20+
function findfirst(name::String, node::Node, argAmlType::Type{AbsAttribute})
21+
elms = findfirstatt(name, node)
22+
return elms
23+
end
24+
25+
function findfirst(indexstr::String, node::Node, argAmlType::Type{AbsText})
26+
index = parse_textindex(indexstr)
27+
elm = findfirsttext(index, node)
28+
return elm
29+
end
30+
################################################################
31+
# findall
32+
function findall(name::String, doc::Document, argAmlType::Type{<:AbsNode})
33+
elms = findall(name, root(doc), argAmlType)
34+
return elms
35+
end
36+
37+
function findall(name::String, node::Node, argAmlType::Type{<:AbsNormal})
38+
# if hasdocument(node)
39+
# elms = findall(name, node) # a vector of Node elements
40+
# else
41+
elms = findallelm(name, node) # a vector of Node elements
42+
# end
43+
return elms
44+
end
45+
46+
function findall(name::String, node::Node, argAmlType::Type{AbsAttribute})
47+
elms = findallatt(name, node)
48+
return elms
49+
end
50+
51+
function findall(indicesstr::String, node::Node, argAmlType::Type{AbsText})
52+
indices = parse_textindices(indicesstr)
53+
elms = findalltext(indices, node)
54+
return elms
55+
end
56+
57+
58+
59+
60+
161
################################################################
262
# Utilities
363
################################################################

0 commit comments

Comments
 (0)