【发布时间】:2011-07-05 02:06:22
【问题描述】:
我是 clojure.xml 和一般 Java XML 库的新手。
我对 clojure.xml/parse 的输出感到惊讶。仅由空格组成的文本节点将被忽略。如果有一个 DOCTYPE 声明说该元素不能有 PCDATA,这在仅元素节点中可能是正确的,但是没有 DOCTYPES 和 即使在混合内容节点中,空白也会被丢弃,忽略了空格。
test.clj:
(require '[clojure.xml :as x])
(prn (x/parse "test.xml"))
test.xml:
<?xml version="1.0"?>
<x>
<y><z>AAA</z> BBB <z>AAA</z> <z>AAA</z></y>
</x>
输出(<z>AAA</z> 和 <z>AAA</z> 之间缺少文本节点):
{:tag :x, :attrs {:xml:space "preserve"}, :content
[{:tag :y, :attrs nil, :content
[{:tag :z, :attrs nil, :content ["AAA"]}
" BBB "
{:tag :z, :attrs nil, :content ["AAA"]}
{:tag :z, :attrs nil, :content ["AAA"]}]}]}
我正在使用 Clojure 1.2.0。这是一个错误,还是它应该如何表现? (即使添加 xml:space="preserve" 属性也不起作用。)
感谢您的帮助!
【问题讨论】: