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

  • eHow

    eHow

    27 NİSAN 2006
  • iBand IguJoo

    iBand IguJoo

    25 AĞUSTOS 2006
  • spederson7

    spederson7

    17 Temmuz 2006