簡體   English   中英

將原始XML添加到使用libxml-ruby構建的XML文檔中

[英]Add raw XML into XML document built with libxml-ruby

使用KML(當然是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>

感謝您的提示!

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM