[cxml-cvs] CVS cxml/xml
dlichteblau
dlichteblau at common-lisp.net
Sun Feb 24 19:03:50 UTC 2008
Update of /project/cxml/cvsroot/cxml/xml
In directory clnet:/tmp/cvs-serv17828/xml
Modified Files:
xmls-compat.lisp
Log Message:
add XPath support for xmls-compat
--- /project/cxml/cvsroot/cxml/xml/xmls-compat.lisp 2007/11/18 18:43:00 1.6
+++ /project/cxml/cvsroot/cxml/xml/xmls-compat.lisp 2008/02/24 19:03:48 1.7
@@ -9,7 +9,7 @@
(defpackage cxml-xmls
(:use :cl :runes)
(:export #:make-node #:node-name #:node-ns #:node-attrs #:node-children
- #:make-xmls-builder #:map-node))
+ #:make-xmls-builder #:map-node #:make-xpath-navigator))
(in-package :cxml-xmls)
@@ -241,3 +241,20 @@
:specified-p t)
nil)))
(node-attrs node))))
+
+;;;; XPath
+
+(defun make-xpath-navigator ()
+ (make-instance 'xpath-navigator))
+
+(defclass xpath-navigator ()
+ ((parents :initform (make-hash-table))
+ (prefixes :initform (make-hash-table))
+ (children :initform (make-hash-table))
+ (attributes :initform (make-hash-table))
+ (namespaces :initform (make-hash-table))))
+
+(defmethod initialize-instance :after ((instance xpath-navigator) &key)
+ (with-slots (prefixes) instance
+ (setf (gethash "http://www.w3.org/XML/1998/namespace" prefixes)
+ "xml")))
More information about the Cxml-cvs
mailing list