使用Clojure附加和预先添加到XML文件

时间:2010-05-30 02:50:03

标签: xml clojure

我有一个格式类似于:

的XML文件
<root>
   <baby>
      <a>stuff</a>
      <b>stuff</b>
      <c>stuff</c>
   </baby>
       ...
   <baby>
      <a>stuff</a>
      <b>stuff</b>
      <c>stuff</c>
   </baby>
</root>

和Clojure哈希图类似:

{:a "More stuff" :b "Some other stuff" :c "Yet more of that stuff"}

我想在<root>标记之后和第一个<baby>

之前添加从此哈希图创建的XML(¶)

(¶)要添加的XML将是:

   <baby>
      <a>More stuff</a>
      <b>Some other stuff</b>
      <c>Yet more of that stuff</c>
   </baby>

我还希望能够从文件中删除最后一个(或n ...)<baby>...</baby>

我正在努力想出一个惯用的是前置和附加这些数据。我可以做原始的字符串操作,或使用xml / parse和xml-seq解析XML,然后滚动节点并(不知何故?)替换那里的数据,但这看起来很混乱。

任何提示?想法?提示?指针?他们都非常赞赏。

谢谢!

1 个答案:

答案 0 :(得分:4)

你想要的是一个拉链。有关您问题的一些好答案,请参阅Insertions into Zipper trees on XML files in Clojure