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

欢迎!请参阅 关于 页面以获取有关此功能的一些更多信息。

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 inadvertent).


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"]}


*Approach:* 更新 doc-string 以反映 s 也可能是 InputSource
*补丁:* CLJ-1290.patch
*筛选人:**

3 个答案

0

评论者:edipofederle

您是否指的是应该包含 "可以是一个 XML 字符串" 的 (doc xml/parse) ?
不知道我是否理解正确。
谢谢。

0

评论者:pbwolf

{{InputSource}} 是 docstring 未涵盖的 {{xml/parse}} 用法

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

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

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