klacks:get-attribute; dribbling source fix; FAQ
This commit is contained in:
@ -102,6 +102,13 @@
|
||||
(sax:attribute-value a)
|
||||
(sax:attribute-specified-p a))))
|
||||
|
||||
(defmethod klacks:get-attribute
|
||||
((source cxml-source) lname &optional uri)
|
||||
(dolist (a (slot-value source 'current-attributes))
|
||||
(when (and (equal (sax:attribute-local-name a) lname)
|
||||
(equal (sax:attribute-namespace-uri a) uri))
|
||||
(return (sax:attribute-value a)))))
|
||||
|
||||
(defmethod klacks:list-attributes ((source cxml-source))
|
||||
(slot-value source 'current-attributes))
|
||||
|
||||
|
||||
@ -34,13 +34,13 @@
|
||||
|
||||
(defgeneric klacks:map-attributes (fn source))
|
||||
(defgeneric klacks:list-attributes (source))
|
||||
(defgeneric klacks:get-attribute (source lname &optional uri))
|
||||
;;;(defgeneric klacks:current-uri (source))
|
||||
;;;(defgeneric klacks:current-lname (source))
|
||||
;;;(defgeneric klacks:current-qname (source))
|
||||
;;;(defgeneric klacks:current-characters (source))
|
||||
(defgeneric klacks:current-cdata-section-p (source))
|
||||
(defgeneric klacks:map-current-namespace-declarations (fn source))
|
||||
(defgeneric klacks:map-previous-namespace-declarations (fn source))
|
||||
|
||||
(defgeneric klacks:current-line-number (source))
|
||||
(defgeneric klacks:current-column-number (source))
|
||||
|
||||
@ -37,6 +37,7 @@
|
||||
|
||||
#:map-attributes
|
||||
#:list-attributes
|
||||
#:get-attribute
|
||||
#:current-uri
|
||||
#:current-lname
|
||||
#:current-qname
|
||||
|
||||
@ -26,7 +26,8 @@
|
||||
(defclass klacks:tapping-source (klacks:source)
|
||||
((upstream-source :initarg :upstream-source :accessor upstream-source)
|
||||
(dribble-handler :initarg :dribble-handler :accessor dribble-handler)
|
||||
(seen-event-p :initform nil :accessor seen-event-p)))
|
||||
(seen-event-p :initform nil :accessor seen-event-p)
|
||||
(document-done-p :initform nil :accessor document-done-p)))
|
||||
|
||||
(defmethod initialize-instance :after ((instance klacks:tapping-source) &key)
|
||||
(let ((s-p (make-instance 'klacksax :source (upstream-source instance))))
|
||||
@ -36,7 +37,9 @@
|
||||
;;; event dribbling
|
||||
|
||||
(defun maybe-dribble (source)
|
||||
(unless (seen-event-p source)
|
||||
(unless (or (seen-event-p source) (document-done-p source))
|
||||
(when (eq (klacks:peek (upstream-source source)) :end-document)
|
||||
(setf (document-done-p source) t))
|
||||
(klacks:serialize-event (upstream-source source)
|
||||
(dribble-handler source)
|
||||
:consume nil)
|
||||
|
||||
Reference in New Issue
Block a user