Changeset 15411 in project


Ignore:
Timestamp:
08/11/09 10:51:52 (10 years ago)
Author:
Alex Shinn
Message:

handling *PI*, *DECL* and *COMMENT* in sxml->html output procedure

Location:
release/4/html-parser/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • release/4/html-parser/trunk/html-parser.scm

    r15230 r15411  
    659659      (let ((tag (car sxml)))
    660660        (if (symbol? tag)
    661             (let ((rest (cdr sxml)))
    662               (cond
    663                ((and (pair? rest)
    664                      (pair? (car rest))
    665                      (eq? '@ (caar rest)))
    666                 (display (html-tag->string tag (cdar rest)) out)
    667                 (for-each (lambda (x) (sxml-display-as-html x out)) (cdr rest))
    668                 (display "</" out) (display tag out) (display ">" out))
    669                (else
    670                 (display (html-tag->string tag '()) out)
    671                 (for-each (lambda (x) (sxml-display-as-html x out)) rest)
    672                 (display "</" out) (display tag out) (display ">" out))))
     661            (case tag
     662              ((*PI* *DECL*)
     663               (display (if (eq? tag '*PI*) "<?" "<!") out)
     664               (cond
     665                ((pair? (cdr sxml))
     666                 (display (cadr sxml) out)
     667                 (for-each
     668                  (lambda (x) (display " " out) (display x out))
     669                  (cddr sxml))))
     670               (display (if (eq? tag '*PI*) "?>" "!>") out))
     671              ((*COMMENT*)
     672               (display "<!--" out)
     673               (for-each (lambda (x) (display x out)) (cdr sxml))
     674               (display "-->" out))
     675              (else
     676               (let ((rest (cdr sxml)))
     677                 (cond
     678                  ((and (pair? rest)
     679                        (pair? (car rest))
     680                        (eq? '@ (caar rest)))
     681                   (display (html-tag->string tag (cdar rest)) out)
     682                   (for-each (lambda (x) (sxml-display-as-html x out)) (cdr rest))
     683                   (display "</" out) (display tag out) (display ">" out))
     684                  (else
     685                   (display (html-tag->string tag '()) out)
     686                   (for-each (lambda (x) (sxml-display-as-html x out)) rest)
     687                   (display "</" out) (display tag out) (display ">" out))))))
    673688            (for-each (lambda (x) (sxml-display-as-html x out)) sxml))))
    674689     ((null? sxml))
    675      (else (html-display-escaped-string sxml out)))))
     690     (else
     691      (html-display-escaped-string
     692       (if (string? sxml)
     693           sxml
     694           (call-with-output-string (lambda (out) (display sxml out))))
     695       out)))))
    676696
    677697(define (sxml->html sxml . o)
  • release/4/html-parser/trunk/html-parser.setup

    r15230 r15411  
    55  'html-parser
    66  '("html-parser.so" "html-parser.import.so")
    7   '((version 0.4)
     7  '((version 0.4.1)
    88    (documentation "html-parser.html")))
Note: See TracChangeset for help on using the changeset viewer.