Rebol / Red Parse Html Rules Returns True But Nothing Is Inserted
I have a parse rules that returns true but it doesn't insert my text as expected : the html is unchanged whereas it should have inserted at the end of the main closing div. I tried
Solution 1:
Here a solution with probe to debug
rules: [
thru <div class="main">
(div-count: 1)
some [
"<div" (probe ++ div-count) skip
|
"</div>" mark: ( probe -- div-count if div-count = 0 [insert mark "closing main div"]) skip
| skip
]
]
parse/all content rules
The problems with your rules are, that the div-count is never or seldom subtracted. The parse pointer goes straight to the next opening div as to is always the first fulfilled condition.
You can break out or better return from parse if you add a to end after a successful condition. If you are unsure use brackets for grouping [ sucessful sub-rules ... to end ]
An example with an end-rule
end-rule: [] ; or none
rules: [
thru <div class="main">
(div-count: 1)
some [
["<div" (++ div-count) skip]
|
["</div>"mark: (-- div-count if div-count = 0 [insert mark "closing main div"end-rule: [toend]]) end-rule ]
| skip
]
]
Post a Comment for "Rebol / Red Parse Html Rules Returns True But Nothing Is Inserted"