名前空間を必要とするXMLデータ形式のエクスポータを実装しています。私はこれを行うためにNokogiri XML Builder(バージョン1.4.0)を使用しています。Nokogiri Builderで名前空間のルート要素を持つXML文書を作成する
しかし、Nokogiriにネームスペースを持つルートノードを作成させることはできません。
これは動作します:
Nokogiri::XML::Builder.new { |xml| xml.root('xmlns:foobar' => 'my-ns-url') }.to_xml
<?xml version="1.0"?>
<root xmlns:foobar="my-ns-url"/>
この場合と同様に:しかし
Nokogiri::XML::Builder.new do |xml|
xml.root('xmlns:foobar' => 'my-ns-url') { xml['foobar'].child }
end.to_xml
<?xml version="1.0"?>
<root xmlns:foobar="my-ns-url">
<foobar:child/>
</root>
を、私は<foo:root>
のようなものを必要とし、これは動作しません:
Nokogiri::XML::Builder.new { |xml| xml['foobar'].root('xmlns:foobar' => 'my-ns-url') }.to_xml
NoMethodError: undefined method `namespace_definitions' for #<Nokogiri::XML::Document:0x11bfef8 name="document">
名前空間がなければなりません明らかに使用前に定義されているので、ルートノードに追加する方法はありません。
a question about this on the Nokogiri mailing listが見つかりましたが、返信はありませんでした。誰にでも解決策がありますか?
作品。ありがとう! –
あなた、私は多くの欲求不満を惜しみませんでした – yalestar
あなたは大歓迎です、yalestar。 – akuhn