Clojure 2024 年状态调查中分享你的想法!

欢迎!请参阅关于页面了解此工作方式的相关更多信息。

0
文档
The clojure.xml parse docstring mentions that parameter s "can be a File, InputStream or String naming a URI."  But those choices do not cover a common case, parsing the value of a String.  Actually, parse also allows InputSource, which solves the problem.  The docstring should mention InputSource (or clarify its omission, if not inadvertently).


user> (use '[clojure.xml :as xml])
nil
user> (import '[java.io StringReader])
java.io.StringReader
user> (import '[org.xml.sax InputSource])
org.xml.sax.InputSource
user> (xml/parse (InputSource. (StringReader. "<egg>green</egg>")))
{:tag :egg, :attrs nil, :content ["green"]}


*方案:* 更新 doc-string 以反映 s 也可以是 InputSource
*补丁:* CLJ-1290.patch
*已审查:*

3 答案

0
by

评论由:edipofederle 提出

你是说让 (doc xml/parse) 包含 "可以是 XML 字符串" 吗?
我不知道我是否正确理解了你的意思。
谢谢。

0
by

评论由:pbwolf 提出

InputSource 是 docstring 中没有涵盖的 xml/parse 使用方式

(xml/parse (InputSource. (StringReader. "<egg>green</egg>")))

也许 xml/parse 是通过专门为 InputSource 的一些功能做出规定来隐藏 InputSource 的。但是读取 String 也很重要,而 xml/parse 不接受 StringReader,因此 InputSource 仍然是重要的。

0
by
参考: https://clojure.atlassian.net/browse/CLJ-1290 (由 alex+import 报告)
...