37 lines
1.3 KiB
Common Lisp
37 lines
1.3 KiB
Common Lisp
(in-package :sax-tests)
|
|
|
|
(defclass event-collecting-handler ()
|
|
((event-list :initform '() :accessor event-list)))
|
|
|
|
(defmethod start-document ((handler event-collecting-handler))
|
|
(push (list :start-document) (event-list handler)))
|
|
|
|
(defmethod start-element ((handler event-collecting-handler) ns-uri local-name qname attrs)
|
|
(push (list :start-element ns-uri local-name qname attrs)
|
|
(event-list handler)))
|
|
|
|
(defmethod start-prefix-mapping ((handler event-collecting-handler) prefix uri)
|
|
(push (list :start-prefix-mapping prefix uri)
|
|
(event-list handler)))
|
|
|
|
(defmethod characters ((handler event-collecting-handler) data)
|
|
(push (list :characters data)
|
|
(event-list handler)))
|
|
|
|
(defmethod processing-instruction ((handler event-collecting-handler) target data)
|
|
(push (list :processing-instruction target data)
|
|
(event-list handler)))
|
|
|
|
(defmethod end-prefix-mapping ((handler event-collecting-handler) prefix)
|
|
(push (list :end-prefix-mapping prefix)
|
|
(event-list handler)))
|
|
|
|
(defmethod end-element ((handler event-collecting-handler) namespace-uri local-name qname)
|
|
(push (list :end-element namespace-uri local-name qname)
|
|
(event-list handler)))
|
|
|
|
(defmethod end-document ((handler event-collecting-handler))
|
|
(push (list :end-document)
|
|
(event-list handler))
|
|
|
|
(nreverse (event-list handler))) |