Problems with attributes.

Subject: Problems with attributes.
From: Reyes <reyes.garcia@xxxxxxxxxx>
Date: Tue, 19 Oct 1999 17:02:24 +0200
Hello,

	I want to collect all the "WERK" tags that have a child with gi "SONW" and
attribute unique "ANKER".
	I have made the next macro, but don't work, I don't know why :



(element INSTAND 
	(make element gi: (string-append "IB-" (gi (current-node)))
		(make element gi: "COLLECT-WERK"
			(process-node-list (unique-son (current-node) "WERK" "SONW" "ANKER"))
      )
      (process-children)
	)
)

;---------------------------------------------------------------------------
--------------------------------------;
;This macro returns a list of nodes with gi "tag" and unique attribute
"../son#att" (descedant from the current node)
;---------------------------------------------------------------------------
--------------------------------------;
(define (unique-son node tag son att)
   (let loop ((result (empty-node-list)) (nl (select-elements (descendants
node) tag)) (list-att '()))
	      (if (node-list-empty? nl)
		   result
		   (if (node-list-empty? (unique (node-list-first nl) son att))
			(loop result (node-list-rest nl) list-att)
			(let son-loop ((son-nl (select-elements (descendants (node-list-first
nl)) son)) 
				       )
					(if (node-list-empty? son-nl)
					    (loop result (node-list-rest nl) list-att)
					    (if (member (attribute-string att (node-list-first son-nl)) list-att)
						 (son-loop (node-list-rest son-nl))
						 (loop (node-list result (node-list-first nl))
							(node-list-rest nl)
							(list list-att (attribute-string att (node-list-first son-nl)))
						 ) 
					    )
					)											
			)
		   )
		)
   )
)


Can anybody help me?

Thanks,
	 Reyes		


 DSSSList info and archive:  http://www.mulberrytech.com/dsssl/dssslist


Current Thread