|
Subject: Re: (dsssl) simple loop question From: Holger Klawitter <lists@xxxxxxxxxxxx> Date: Fri, 11 Apr 2003 08:41:24 +0200 |
> If "n" is the ltt-name node, then, I can do
> (string (node-property 'char n))
> to get the character data, and
> (equal? 'data-char (node-property 'class-name n))
> to find out if it has character data? Or are the characters attached
> to child nodes of n? How can entities be handled, as in
> <ltt-name>François</ltt-name>
The simplest way is to use data, bat as you probably already observed, it
expands entityrefs. I use the following function to avoid that.
; TODO: making it tail recursive
(define (NodeListData nl) (if (node-list-empty? nl) ""
(string-append (let* (
(next (node-list-first nl))
(clz (node-property 'class-name next))
)
(case clz
((element) (NodeListData (node-property 'content next)))
((data-char) (string (node-property 'char next)))
((sdata) (string-append "&" (node-property 'entity-name next) ";"))
; ideas for other branches ?
(else (error (string-append (symbol->string clz) " unsupported!")))
)) (NodeListData (node-list-rest nl))
)
))
To emit Strings into sosofos, you need another function to "compile" the
entityrefs back ;-)
Mit freundlichem Gruß / With kind regards
Holger Klawitter
--
lists@xxxxxxxxxxxx
DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: (dsssl) simple loop question, tmcd | Thread | RE: (dsssl) simple loop question, Miroslaw Prywata |
| RE: (dsssl) simple loop question, Miroslaw Prywata | Date | (dsssl) Loop and Data content, Javier Farreres de l |
| Month |