我正在使用Nokogiri将XML文档转换为JSON。代码是直接的:
@document = Nokogiri::XML(entry.data)
xslt = Nokogiri::XSLT(File.read("#{File.dirname(__FILE__)}/../../xslt/my.xslt"))
transform = xslt.transform(@document)
本例中的entry
是一个基于Mongoid的模型,数据是存储在MongoDB上的字符串形式的XML blob属性。
当我转储transform
的内容时,JSON就在那里。问题是,Nokogiri在文档顶部标记了:
<?xml version="1.0"?>
解决这个问题的正确方法是什么?
尝试以下#apply_to
方法(Source
):
require 'nokogiri'
doc = Nokogiri::XML('<?xml version="1.0"><root />')
xslt = Nokogiri::XSLT("<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'/>")
puts xslt.transform(doc)
puts "######"
puts xslt.apply_to(doc)
# >> <?xml version="1.0"?>
# >> ######
# >>