|
From: | Lennart Borgman (gmail) |
Subject: | Re: Error in xml.el documentation |
Date: | Sat, 23 Feb 2008 02:18:50 +0100 |
User-agent: | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071031 Thunderbird/2.0.0.9 Mnenhy/0.7.5.666 |
Jason Rumney wrote:
Lennart Borgman (gmail) wrote:This one is correct. The functions mentioned return a list of nodes. In the case of xml-parse-region at least, there can be more than one node at the top level of the returned list.Thanks, I did not think of that case.But it seems I was wrong. xml-parse-region throws an error if the region does not contain well-formed XML with a single top-level node. So although the functions all return a list, they all always return a list of one.
Would something like this fit in xml.el: (defun freemind-get-child (parent path) (message "freemind-get-child %s %s" parent path) (let* ((childs (cddr parent)) (step (car path)) (step-node (if (listp step) (car step) step)) (step-num (if (listp step) (cdr step) 1)) (path-tail (cdr path)) (path-child (catch 'path-child (dolist (child childs) (when (and (not (stringp child)) (eq step-node (car child))) (when (= 1 step-num) (throw 'path-child child)) (setq step-num (1- step-num))))))) (if path-tail (freemind-get-child path-child path-tail) path-child)))
[Prev in Thread] | Current Thread | [Next in Thread] |