MCPcopy Create free account
hub / github.com/antchfx/xpath / Select

Method Select

query.go:1322–1352  ·  view source on GitHub ↗
(t iterator)

Source from the content-addressed store, hash-verified

1320}
1321
1322func (m *mergeQuery) Select(t iterator) NodeNavigator {
1323 for {
1324 if m.iterator == nil {
1325 root := m.Input.Select(t)
1326 if root == nil {
1327 return nil
1328 }
1329 m.Child.Evaluate(t)
1330 root = root.Copy()
1331 t.Current().MoveTo(root)
1332 var list []NodeNavigator
1333 for node := m.Child.Select(t); node != nil; node = m.Child.Select(t) {
1334 list = append(list, node.Copy())
1335 }
1336 i := 0
1337 m.iterator = func() NodeNavigator {
1338 if i >= len(list) {
1339 return nil
1340 }
1341 result := list[i]
1342 i++
1343 return result
1344 }
1345 }
1346
1347 if node := m.iterator(); node != nil {
1348 return node
1349 }
1350 m.iterator = nil
1351 }
1352}
1353
1354func (m *mergeQuery) Evaluate(t iterator) interface{} {
1355 m.Input.Evaluate(t)

Callers

nothing calls this directly

Calls 5

SelectMethod · 0.65
EvaluateMethod · 0.65
CopyMethod · 0.65
MoveToMethod · 0.65
CurrentMethod · 0.65

Tested by

no test coverage detected