如何使用Emacs Lisp编辑xml/dom

如何使用Emacs Lisp编辑xml/dom,xml,emacs,elisp,Xml,Emacs,Elisp,如果可能的话,我如何在Emacs Lisp中以编程方式编辑xml数据 我需要做的是以编程方式将新节点添加到xml中的任意位置: <root> <child> </child> </root> (xml-add-element xml "hello" (xml-element-by-tagname xml "child")) <root> <child> <hello></hello&

如果可能的话,我如何在Emacs Lisp中以编程方式编辑xml数据

我需要做的是以编程方式将新节点添加到xml中的任意位置:

<root>
  <child>
  </child>
</root>

(xml-add-element xml "hello" (xml-element-by-tagname xml "child"))

<root>
  <child>
    <hello></hello>
  </child>
</root>

(xml添加元素xml“hello”(标记名xml“child”的xml元素)


编辑:我已经将xml解析为lisp结构,并使用
xml.el
dom.el
对其进行编辑,但现在我需要将lisp结构转换回xml数据

以下是我的版本,用于将从xml parse*函数创建的s表达式转换回xml字符串。希望对你有帮助


有趣的是,我今天遇到了完全相同的问题。特雷·杰克逊的密码让我很接近。但这并不是我所需要的100%,因为如果sexp包含任何空格节点,Trey的解决方案就会吃掉空格。我非常接近于我自己的xmlgen实现,它应该以xml parse-*函数解析xml之前的方式输出xml。完成后我会尽快发布答案。