(require (lib "xml.ss" "xml")) (define (load-xml-file file-name) (xml->xexpr (document-element (with-input-from-file file-name read-xml)))) (define (save-band-xml-file xexpr file-name) (let ((port (open-output-file file-name))) (write-xml (make-xml-document 'band "band.dtd" #f xexpr) port) (close-output-port port))) (define (add-tony xexpr) `(band ,@(append (cdr xexpr) '((member (name "Tony Iommi") (instrument "guitar")))))) ;;; main program (save-band-xml-file (add-tony (load-xml-file "band.xml")) "band-neu.xml")