Объявление пространств имен с использованием libxml-ruby - PullRequest
2 голосов
/ 14 февраля 2011

Я использую libxml-ruby для анализа XML.

Я могу создать xml-файл, используя libxml-ruby, но проблема в том, что я не могу объявить пространство имен для сгенерированного XML-документа.

Пожалуйста, помогите мне, как создать пространство имен для вновь генерируемого XML.

Код, написанный для создания XML:

require 'rubygems' 
require 'libxml'

filename = 'something.xml'
stats_doc = LibXML::XML::Document.new()
stats_doc.root = LibXML::XML::Node.new('root_node') 
stats_doc.root << LibXML::XML::Node.new('elem1') 
stats_doc.save(filename, :indent => true, :encoding => LibXML::XML::Encoding::UTF_8)

1 Ответ

1 голос
/ 05 марта 2011

Вам просто нужно создать новый экземпляр класса XML :: Namespace, как описано здесь .Ниже вы можете найти модифицированную версию вашего примера.

require 'rubygems' 
require 'libxml'

filename = 'something.xml'
stats_doc = LibXML::XML::Document.new()
stats_doc.root = LibXML::XML::Node.new('root_node')

LibXML::XML::Namespace.new(stats_doc.root, 'soap', 'http://schemas.xmlsoap.org/soap/envelope/')

stats_doc.root << LibXML::XML::Node.new('elem1')
stats_doc.save(filename, :indent => true, :encoding => LibXML::XML::Encoding::UTF_8)
...