2024 Clojure 状态调查!中分享您的想法。

欢迎!请查看关于页面以了解有关此方法的一些更多信息。

0
data.xml
README.md 展示了如何使用 java.io.FileWriter 编写 XML 文件。因此,该示例仅在 Java 平台的默认编码是 UTF-8 时才有效。建议:README 使用 clojure.java.io/writer,其默认编码在所有地方都是 UTF-8,这将展示一种更广泛可用的技术。

使用 README 示例的示例程序

{code:clojure}
(ns garble
  (:require [clojure.data.xml :refer [element emit]]))
(defn -main
  "尝试写入一个 XML 文件"
  []
  (let [tags (element :foo {:foo-attr "foo value"}
             (element :bar {:bar-attr "bar value"}
               (element :baz {} "The baz value")))]
  (with-open [out-file (java.io.FileWriter. "/tmp/foo.xml")]
    (emit tags out-file))))


调用 1 (覆盖 Java 的默认编码,因为 Java 倾向于在我的电脑上使用 UTF-8)

{{java -cp ... -Dfile.encoding=US-ASCII clojure.main -m garble}}

结果

{{java.lang.Exception: 流的输出编码(UTF-8)与声明(ASCII)不匹配}}

调用 2

{{java -cp ... -Dfile.encoding=UTF-8 clojure.main -m garble}}

结果:成功写入 /tmp/foo.xml

1 个答案

0
参考:[https://clojure.atlassian.net/browse/DXML-40](https://clojure.atlassian.net/browse/DXML-40)(由 alex+import 报告)
...