我想省略使用libxmlruby指定默认名称空间

我想省略使用libxmlruby指定默认名称空间,ruby,xml,libxml-ruby,Ruby,Xml,Libxml Ruby,我对libxml ruby有疑问。 有一个xml文件“sample.xml” 当然,我可以像下面这样做 xml = XML::Document.file('sample.xml') sheet_data = xml.find_first('sheetData') NS = { main: 'http://***', r: 'http://???', } sheet_data = xml.find_first('main:sheetData', NS) <row><v

我对libxml ruby有疑问。
有一个xml文件“sample.xml”

当然,我可以像下面这样做

xml = XML::Document.file('sample.xml')
sheet_data = xml.find_first('sheetData')
NS = {
  main: 'http://***',
  r: 'http://???',
}
sheet_data = xml.find_first('main:sheetData', NS)
<row><v>1</v></row>
<main:row/>
但我想省略默认名称空间的字符串。
我尝试了一些属于XML::Namespace[s]的属性和方法,但没有成功

在保存xml文件时还有一个问题

ns = XML::Namespace.new(xml.root, 'main', 'http://***')
row = XML::Node.new('row', nil, ns)
sheet_data << row
xml.save("sample.xml")
ns=XML::Namespace.new(XML.root,'main','http://***')
row=XML::Node.new('row',nil,ns)

你能告诉我你想要的最终结果吗?如果可能的话,使用Nokogiri,它会帮你解决问题。嗨,阿鲁普。我想要的结果是,在发布的文件中没有默认名称空间的字符串。我希望是“但不是”。我知道Nokogori,但不想经常使用它。
<row><v>1</v></row>
<main:row/>
open('sample.xml', 'wb') do |f|
  f.write(xml.to_s.gsub(/(<\/?)main:/, '\1'))
end