相关疑难解决方法(0)

在Clojure中插入到XML文件的Zipper树中

我很困惑如何习惯性地更改通过clojure.contrib的zip-filter.xml访问的xml树.应该尝试这样做,还是有更好的方法?

假设我有一些虚拟xml文件"itemdb.xml",如下所示:

<itemlist> 
  <item id="1">
    <name>John</name>
    <desc>Works near here.</desc>
  </item>
  <item id="2">
    <name>Sally</name>
    <desc>Owner of pet store.</desc>
  </item>
</itemlist>
Run Code Online (Sandbox Code Playgroud)

我有一些代码:

(require '[clojure.zip :as zip]
  '[clojure.contrib.duck-streams :as ds]
  '[clojure.contrib.lazy-xml :as lxml]
  '[clojure.contrib.zip-filter.xml :as zf]) 

(def db (ref (zip/xml-zip (lxml/parse-trim (java.io.File. "itemdb.xml")))))

;; Test that we can traverse and parse.
(doall (map #(print (format "%10s: %s\n"
       (apply str (zf/xml-> % :name zf/text))
       (apply str (zf/xml-> % :desc zf/text))))
     (zf/xml-> @db :item)))

;; I assume something like this is needed to make the …
Run Code Online (Sandbox Code Playgroud)

xml clojure clojure-contrib

9
推荐指数
2
解决办法
1709
查看次数

如何在enlive中选择特定类型的第n个元素?

我试图从具有基于表格的布局的页面中抓取一些数据.因此,为了获得一些数据,我需要在第一个表内第五个表内的第二个表内获得第三个表.我试图使用enlive,但无法弄清楚如何使用nth-of-type和其他选择器步骤.更糟糕的是,有问题的页面在正文中有一个顶级表,但是(select data [:body:>:table])由于某种原因返回6个结果.我到底做错了什么?

clojure

4
推荐指数
1
解决办法
2317
查看次数

标签 统计

clojure ×2

clojure-contrib ×1

xml ×1