Comments (6)
I'm into it. @aselder Is it possible to provide a snippet so I can reproduce the error?
from floki.
from floki.
OK, thank you!
from floki.
Here’s some info that I think clarifies the root cause. I just tried to parse that html that was found to be bad on the one page:
<spanclass=\"trade\">™ curl gelée<br><br><br></spanclass=\"trade\">
With Floki 0.35.0, I get the same exact error we saw on production:
iex(3)> Floki.parse_fragment(f)
** (MatchError) no match of right hand side value: [{"=", "="}, {"\"trade\"", "\"trade\""}]
(floki 0.35.0) src/floki_mochi_html.erl:257: :floki_mochi_html.norm/2
(floki 0.35.0) src/floki_mochi_html.erl:241: :floki_mochi_html.tree/3
(floki 0.35.0) src/floki_mochi_html.erl:120: :floki_mochi_html.parse_tokens/2
(floki 0.35.0) lib/floki/html_parser/mochiweb.ex:10: Floki.HTMLParser.Mochiweb.parse_document/2
iex:3: (file)
with Floki 0.34.3, it works:
iex(3)> Floki.parse_fragment(f)
{:ok,
[
{"spanclass", [{"=", "="}, {"\"trade\"", "\"trade\""}],
["™ curl gelée", {"br", [], []}, {"br", [], []}, {"br", [], []}]}
]}
So it was some invalid html that was not causing problem before, but after upgrading floki, it was an error
from floki.
@aselder thank you so much! It was a silly mistake of mine. I'm going to release a patch version soon :)
from floki.
Done! Please try the version 0.35.1
:)
from floki.
Related Issues (20)
- 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
- Buttons in Header Section Lacks Transition!!
- Floki attribute example is ambiguous
- Proposal: optimized find for simple cases HOT 6
- Is it possible to get line/column number of a tag? HOT 4
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.