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

  • hoorahjencar

    hoorahjencar

    6 HAZİRAN 2007
  • jcortes187

    jcortes187

    24 Mart 2006
  • Major FX

    Major FX

    6 HAZİRAN 2012