Comments (7)
Thanks for the release and pointing me in the right direction to work on a fix 💙 💛 💚
from floki.
BTW thanks for doing this project. It has been very useful so far and I'd be happy to spend some time trying to fix this bug if you can point me in the right general direction of where I should look.
from floki.
Hi @mmmries!
Thanks for the report. This is definitely a bug. Not sure why, but is selecting a wrong node.
I'm investigating this.
from floki.
@mmmries I found the problem, but I'm not sure how to fix yet. It is here: https://github.com/philss/floki/blob/master/lib/floki/finder.ex#L202-L210
We should take all the children ids based on the list of ids that are between the current node and the sibling node. This works when there is a sibling, but don't work when the node is the last node inside his parent.
I have one idea that I will try to implement. Feel free to give a try too.
Thanks!
from floki.
@philss thanks for pointing me in the right direction. I'll take a look and see if I can better understand that section of code specifically. Hopefully I can make an attempt at a fix before you get there so you can take me to 🏫
from floki.
@mmmries nice! One way to make sure it takes all descendant nodes is to traverse the nodes that are below the current node and adding them to the stack right in that process.
This would avoid the idea of taking the ids of what we assume it's a subtree, which theoretically is simpler. But would be a little bit harder to implement since we would have to traverse and accumulate the results.
from floki.
@mmmries This fix was released in v0.12.1. Thank you again!
from floki.
Related Issues (20)
- Include input values in the result of `Floki.text/2` HOT 4
- Floki using the built in parser does not handle the optional closing p tag HOT 5
- html_declaration can be a 2 tuple HOT 1
- Suggestion self_closing_tags HOT 5
- Floki.find doesn't support escaped colons in class names HOT 3
- parse_fragment does not parse whitespace in HTML (or XML) text properly
- traverse_and_update/3 return typespec needs html_tree() HOT 4
- :not pseudo-class attribute selector breaks Floki.find/2 with comma-separated selectors HOT 3
- Unhandled error for Floki.parse_fragment/2 HOT 1
- CDATA inside a title tag is not handled in Mochiweb parser
- Is there a way to replace paragraph tags by newlines in Floki.text()? HOT 1
- Proposal: Add Floki.Doc HOT 10
- Drop support for Elixir 1.11
- Allow option to parse attributes as maps HOT 9
- Floki is extremely noisy in logs
- Support for :has pseudo selector
- Error after upgrading to 0.35.0 HOT 6
- Buttons in Header Section Lacks Transition!!
- Floki attribute example is ambiguous
- Proposal: optimized find for simple cases HOT 5
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 floki.