将原始XML添加到使用libxml-ruby构建的XML文档中

时间:2017-04-25 21:13:15

标签: ruby xml kml libxml2 libxml-ruby

使用KML(当然是XML),我有很多样式 - 对于人类来说 - 最容易阅读和维护为原始XML。我想将它们添加到使用libxml-ruby构建的XML文档中。

这是一个简化的例子:

<?xml version="1.0" encoding="UTF-8"?>
<Document>&lt;Style&gt;
  &lt;foo&gt;bar&lt;/foo&gt;
&lt;/Style&gt;
</Document>

结果:

<<

这是预期的,因为<?xml version="1.0" encoding="UTF-8"?> <Document> <Style> <foo>bar</foo> </Style> </Document> 不解析原始XML。但是,我的问题是有没有办法正确地做到这一点并获得以下输出?

{{1}}

感谢您的提示!

1 个答案:

答案 0 :(得分:1)

xml.rootLibXML::XML::Node的实例,其<<方法用于添加节点。不用于解析XML字符串。

要解析字符串,您可以使用例如XML::Parser.string

xml = XML::Document.new
xml.root = XML::Node.new(:Document)
# Parse the string into XML::Document, then take its root node tree
another_doc = XML::Parser.string(raw_xml).parse
node = xml.import(another_doc.root)
xml.root << node