Returns a node list containing all the nodes from nodelist that are not PIs. The order of nodes in the node list is preserved.
(define (node-list-filter-out-pis nodelist)
;; Returns the nodelist with all PIs removed
(let loop ((result (empty-node-list)) (nl nodelist))
(if (node-list-empty? nl)
result
(if (equal? (node-property 'class-name (node-list-first nl)) 'pi)
(loop result (node-list-rest nl))
(loop (node-list result (node-list-first nl))
(node-list-rest nl))))))