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

  • Incredible Tutorials

    Incredible T

    27 EKİM 2006
  • SalGames2016

    SalGames2016

    17 Kasım 2012
  • Smith Micro Graphics

    Smith Micro

    15 Mayıs 2008