[racket] HTML element to string (and vice versa)

From: J G Cho (gcho at fundingmatters.com)
Date: Thu Dec 8 23:17:35 EST 2011

To HTML parser experts:

I am trying to transform a div tag in the following HTML document:

(define an-html
 (h:read-html
  (open-input-string
   (string-append
    "<html><head><title>My title</title></head><body>"
    "<p>Hello world</p><div id='_abc'>replace me</div><p><b>Testing</b>!</p>"
    "</body></html>"))))

I want <div id='_abc'>replace me</div> to read  something like <div
id='_abc'>I am <span>replaced</span></div>.

I am trying (without much success) the following code:

(define (echo-or-change-element an-html-element)
 (match an-html-element
   [(struct h:div (attributes content))
    (begin (display "BINGO!\n")
           (display "\n")

           (h:make-div attributes
                      (list (x:xexpr->xml (x:string->xexpr
"<span>replaced</span>")))))]...

I am also having trouble with expression: (x:display-xml/content
(echo-content an-html))

Thanks in advance.

jGc

tldr - trouble writing out html elements and creating html from string


Posted on the users mailing list.