Hello!

What's the clever way to read the E-tags "thisone" and "andthis" in the
XML-file below given I don't know their id on beforehand?

<a>
  <b>bla bla</b>
  <b>bla bla</b>
  <c id="wanted">
    <d id="1">
      <e id="notthisone"/></d>
    <d id="2">
      <e id="thisone"/>
      <e id="andthis"/></d>
   <d id="3">
      <e id="not-intresting"></d>
</a>

My solution so far would be something like

(def mz (zip/xml-zip (xml/parse "dataabove.xml")))

(defn get-all-dimensions []
  (filter #(and (= "2" (:id %)) (= :e (:tag %))) (zip/children mz))))

but I'm looking for some descending solution

(-> mz
      (zip/down a)
      (zip/down c :where (= :id "wanted"))
      (zip/down d :where (= :id 2))
      zip/children)

(an xpath-like solution would most awesome)

According to it's own page Enlive is not very good for xml and I cannot
figure out the way to dynamically walk with zippers (like "go into the tag
:d with id=..."). Would Enlive work for my needs here?

When I got this sorted out I will try my best to add some examples on
clojuredocs.org, zippers is good but I don't know if it's for everything.

/Linus

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to