Subject: Collect nodes with unique attribute ¿? From: Reyes Garcia Rosado <reyes.garcia@xxxxxxxxxx> Date: Thu, 07 Oct 1999 11:30:01 +0200 |
Hello again! I need to take from a tree (SGML instance) all the nodes that have a specified gi and with unique value for a specified attribute. I explin it: I have a SGML instance from a DTD like this: |-- SON-AA |-- SON-A-----|-- *BETRSTOFF(#ANKER) | |-- *SON-AB | INSTAND-----|-- SON-B | | |-- SON-CA-----BETRSTOFF(#ANKER) |-- SON-C-----|-- *SON-CB | |-- SON-CCA |-- *SON-CC-----| |-- *BETRSTOFF(#ANKER) and I want to make, with Jade, a SGML instance from the next DTD: |-- COLLECT-BETRSTOFF------ *BETRSTOFF(#ANKER) | | |-- SON-AA |-- SON-A-----|-- *BETRSTOFF | |-- *SON-AB INSTAND-----| |-- SON-B | | |-- SON-CA-----BETRSTOFF |-- SON-C-----|-- *SON-CB | |-- SON-CCA |-- *SON-CC-----| |-- *BETRSTOFF I can collect the BETRSTOFF, thas isn't a problem ( Before now I have spooken with "you" ) My problem is collect all the tags with the gi "BETRSTOFF" but if there are two with the same attribute ( "ANKER" in this case) it must be only one time stored. I have made two procedures (they work good): (element INSTAND (make element gi: (string-append "IB-" (gi (current-node))) (make element gi: "COLLECT-BETRSTOFF" (process-node-list (unique "BETRSTOFF" "ANKER")) ) (process-children) ) ) (define (unique tag att) (unique-node-att (select-elements (descendants (current-node)) tag) att) ) (define (unique-node-att list-tag att) (let loop ((result (empty-node-list)) (nl list-tag) (list-att '())) (if (node-list-empty? nl) result (if (member (attribute-string att (node-list-first nl)) list-att) (loop result (node-list-rest nl) list-att) (loop (node-list result (node-list-first nl)) (node-list-rest nl) (list list-att (attribute-string att (node-list-first nl))) ) ) ) ) ) But, there is a direct way to make this? Thanks, Reyes DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: Bug#42839: jadetex: No warning , Sebastian Rahtz | Thread | Side-by-side formatting in DSSSL?, Dudley, Mark |
jadetex: No warning about wrong lab, Adam Di Carlo | Date | Re: Jade crashes on silly code, Jany Quintard |
Month |