2017-01-25 4 views
0

Ich habe eine Nokogiri::XML::Builder Beispiel, wenn ich to_xml nennen es produziert Struktur folgende:einen Knoten unter Verwendung von XML Nokogiri hinzufügen :: XML :: Builder

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <item>...</item> 
    <item>...</item> 
</root> 

diese Instanz verwenden ich eine weitere hinzufügen möchten <item> Knoten unter <root> wie folgt aus:

def add_static_job(builder) 
    source = builder.doc.root 
    item = Nokogiri::XML::Node.new('item', source) 
    item.content = '<title>Hello</title>' 
    source << item 
end 

Unfortunatelly das gültige xML am Ende nicht produzieren, sondern so etwas wie:

<item>&lt;title&gt;Hello&lt;title&gt;</item> 

Was könnte das Problem sein?

Antwort

0

Sie könnten es in zwei Schritten tun:

  • Titel Knoten mit "Hallo" als Inhalt erstellen
  • erstellen Artikel Knoten mit Titel als Inhalt

xml = '<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <item>A</item> 
    <item>B</item> 
</root>' 

require 'nokogiri' 

doc = Nokogiri::XML.parse(xml) 

source = doc.root 

title = Nokogiri::XML::Node.new('title', doc) 
title.content = "Hello" 

item = Nokogiri::XML::Node.new('item', doc) 
item << title 

source << item 

puts doc 

# => 
# <?xml version="1.0" encoding="UTF-8"?> 
# <root> 
# <item>A</item> 
# <item>B</item> 
# <item><title>Hello</title></item></root> 
Verwandte Themen