我已经设法弄清楚我的问题的主要部分,“如何将一个 XML 文档插入另一个?” 我得到的结果会起作用,但打印的 XML 缺少换行符。
s = <<EOF
<application>
<email>
<host>mail.test.com</host>
<port>25</port>
</email>
</application>
EOF
p = <<EOF
<auth>
<user>godber</user>
<pass>foo</pass>
</auth>
EOF
subdoc = REXML::Document.new(p)
doc = REXML::Document.new(s)
doc.root.insert_after( '//email', subdoc.root )
doc.write
这将输出以下内容,您可以看到 auth 标记在电子邮件关闭标记之后立即开始,没有换行符
<application>
<email>
<host>mail.test.com</host>
<port>25</port>
</email><auth>
<user>godber</user>
<pass>foo</pass>
</auth>
</application>
实际上,就在我完成此操作时,我意识到我可以将最后一行更改为
doc.write( $stdout, 2 )
这清楚地写在 rexml 教程中,我只是假设有其他问题而忽略了它。我想我会提交这个,以防其他人对此感到困惑。如果有人有这些方面的提示,我很乐意听到。