在Clojure中突变XML

前端之家收集整理的这篇文章主要介绍了在Clojure中突变XML前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Clojures clojure.xml / parse,clojure.zip/xml-zip和clojure.contrib.zip-filter.xml / xml->是从xml中提取值的优秀工具,但是如果我想根据从xml->中学到的内容更改xml(clojure.zip/xml-zip的结果),该怎么办? “查询”并将结果写回xml?

我会预期(clojure.contrib.prxml / prxml(clojure.xml / parse xml-content))吐回xml,但情况并非如此.

更新:实际上,为了发布 XML,最好使用clojure.contrib.lazy-xml / emit,因为clojure.xml / emit目前可能会破坏事情!看下面我的评论.

(现在把这个答案留在这里作为警告)

如果我理解正确,问题的主要重点是将(可能是突变的)XML表示转换成XML文本?

如果是这样,请查看clojure.xml / emit和clojure.xml / emit-element:

user> (with-out-str (xml/emit {:tag :foo :attrs {:bar "quux"}}))
"<?xml version='1.0' encoding='UTF-8'?>\n<foo bar='quux'/>\n"

(with-out-str捕获打印的输出并将其包装成一个字符串;由于某种原因,xml / emit打印出xml,所以它在这里很方便,你将要使用emit-element if<?xml version = '1.0'encoding ='UTF-8'?>不是你想要的.)

猜你在找的XML相关文章