Comments (4)
It seems caused by the childQuery
not checking the predicate on its Input directly and wanting to iterate to children before. I believe this change should fix the issue:
diff --git a/query.go b/query.go
index fe2633f..d3ef543 100644
--- a/query.go
+++ b/query.go
@@ -198,6 +198,9 @@ func (c *childQuery) Select(t iterator) NodeNavigator {
node = node.Copy()
first := true
c.iterator = func() NodeNavigator {
+ if c.Predicate(node) {
+ return node
+ }
for {
if first {
if !node.MoveToChild() {
from xpath.
Perhaps there are legitimate cases where we want to check for children and not the current node, but //
means /descendant-or-self::node()/
(section 2.5 of W3C XPath 1.0 recommendation)
from xpath.
The above patch is creating an infinite loop somewhere in the tests, It should probably be tweaked to behave like this only in some cases.
from xpath.
Its generate XPath query for XPath expression problem.
default generate query look is : filterQuery
> childQuery
> childQuery
> descendantQuery
but it should be like this: filterQuery
> childQuery
> descendantQuery
.
from xpath.
Related Issues (20)
- Implementing variables HOT 1
- Error: (4,2) has an invalid token HOT 1
- error: xml: unsupported version "1.1"; only version 1.0 is supported
- Question HOT 2
- Implementing `current()` HOT 28
- And'ed expression for node selection.
- Bug: //a[@b='../../@b'], Condition expression with parent query(../../) expression filter
- last() not working on subgroups HOT 7
- Discussion: Provide `NodeNavigator` interface to get native data HOT 12
- The multiple filter query with `last()` function HOT 1
- How to use this in rust HOT 1
- string comparison size error HOT 1
- How get the xpath of selected html elem? HOT 1
- How to concatenate json values? HOT 2
- Thank you HOT 1
- stateful interface is cumbersome when performing multiple xpath queries on one document HOT 1
- The multiple filter query with last() and concat() function HOT 3
- How to "zip" two lists together? HOT 1
- Can you give some examples of usage of node axes? ex:getting the matching values of previous sibling and next sibling HOT 1
- why is panic used instead of returning errors? HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xpath.