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

  • circuschina

    circuschina

    16 Mart 2007
  • Goran Dimov

    Goran Dimov

    1 HAZİRAN 2014
  • ItZWaffleS420

    ItZWaffleS42

    9 EYLÜL 2011