So here’s the problem:
I have a html document that is being spit out to me as a string.
example: "<!doctype html>\n<html lang=“en”>\n \n\n
\n \t\n \t \n \tMy page Testing
\nsome text here
\t\n \tThis is my footer info
\n \t\n \n"I’m using regular expression to find all the opening tags of the dom
elements. <html lang=“en”>, , , <h1 class=“my-class”>,
etc… and it’s working. This is via scan() method.
==============================
elements = []
opening_tags = file.scan(/<\w+\s+[^>]>/)
opening_tags.each do |tag|
if tag.match(/class=\"(.?)editor(.*?)\"/) # tries to match anything
with a class=“editor”
close = get_closing_tag(tag)
# finds which DOM element it is and returns close tag
# example if ‘
’ returns ‘
’file.match(/#{tag}(.+)#{close}]/) { |m| elements << m }
# pushes all matches to elements array
=======================================
So I get the opening tags as it should
and
and I get a proper closing tag for each and
but /#{tag}(.+)#{close}]/ returns nothingOutput from Rails.logger.info
+++++++++++++++++++++++++++++++++++++++
==== tag ====
“<h1 class=“my-class”>”
==== close ====
“
==== /#{tag}(.+)#{close}]/ ====
/
(.+)</p>]/
==== tag ====
“<p class=“my-class icon”>”
==== close ====
“
==== /#{tag}(.+)#{close}]/ ====
/
(.+)</p>]/
==== tag ====
“<p class=“fred my-class”>”
==== close ====
“
==== /#{tag}(.+)#{close}]/ ====
/
(.+)</p>]/
======= elements ========
[]
+++++++++++++++++++++++++++++++++++++++
Any help would be appreciated. I’m at my wits end here. If there is a
completely better way to do this, I’m all ears as well.
Thank you in advance.