2017-04-25 21 views
0

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

这里有一个简单的例子:

require 'xml' 

raw_xml = <<~END 
    <Style> 
    <foo>bar</foo> 
    </Style> 
END 

xml = XML::Document.new 
xml.root = XML::Node.new(:Document) 
xml.root << raw_xml 
xml.to_s 

结果:

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

这是自<<可以预期的不解析原始的XML。然而,我的问题是有没有办法做到这一点,并获得以下输出?

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

感谢您的提示!

回答

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 
相关问题