Supposons que vous disposez des éléments xml à analyser dans votre fichier:
<high-node>
<low-node>my text</low-node>
</high-node>
vous chargez clojure.xml
:
user=> (use 'clojure.xml)
lorsque analysée, le xml aura la structure suivante:
{:tag :high-node, :attrs nil, :content [{:tag :low-node, :attrs nil, :content ["my text"]}]}
et puis vous pouvez seq sur le contenu du fichier pour obtenir le contenu de l' low-node
:
user=> (for [x (xml-seq
(parse (java.io.File. file)))
:when (= :low-node (:tag x))]
(first (:content x)))
("my text")
De même, si vous voulez avoir accès à l'ensemble de la liste des informations sur les bas-nœud, vous pouvez modifier l' :when
prédicat (= (:high-node (:tag x)))
:
user=> (for [x (xml-seq
(parse (java.io.File. file)))
:when (= :high-node (:tag x))]
(first (:content x)))
({:tag :low-node, :attrs nil, :content ["my text"]})
Cela fonctionne parce que les mots clés peuvent fonctionner comme des fonctions. Voir les Questions sur les listes et d'autres choses en Clojure et Structures de Données: les mots clés