SORU
28 Temmuz 2009, Salı


Clojure XML Ayrıştırma

Xml belgeleri ve erişim unsurları çözümleme hakkında herhangi bir bilgi bulamıyorum.

Xml belgesini ayrıştırmak için iki yol buldum

(clojure.zip/xml-zip (clojure.xml/parse file))

ve

(parse-seq file)

ama ortaya çıkan yapı, süreç hakkında herhangi bir bilgi bulmak için görünmüyor olabilir?

Kaynak zip sorgu gösterir dosya.çok eksik gibi görünüyor ama sonuç sorgu nasıl clj.

CEVAP
28 Temmuz 2009, Salı


Dosyası ayrıştırılamadı: aşağıdaki xml olduğunu varsayalım

<high-node>
   <low-node>my text</low-node>
</high-node>

sana yük 10**:

user=> (use 'clojure.xml)

ayrıştırılmış, xml yapısı aşağıdaki gibi olacaktır:

{:tag :high-node, :attrs nil, :content [{:tag :low-node, :attrs nil, :content ["my text"]}]}

ve sonra dosyanın içeriği low-node: içeriği almak için seq

user=> (for [x (xml-seq 
              (parse (java.io.File. file)))
                 :when (= :low-node (:tag x))]
         (first (:content x)))

("my text")

Eğer düşük düğüm hakkında bilgi tüm listesi için erişim yapmak isterlerse aynı şekilde :when yüklem 16 ** değiştirmek:

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"]})

Bu anahtar işlevleri olarak çalışabilir çünkü çalışır. Questions about lists and other stuff in Clojure Data Structures: Keywords bkz

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dhcrr's channel

    dhcrr's chan

    2 Ocak 2007
  • Rugiagialia

    Rugiagialia

    1 Ocak 2008
  • Valdorsha

    Valdorsha

    8 Mayıs 2006