2

我正在使用 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 的模型,数据是一个 XML blob 属性,作为字符串存储在 MongoDB 上。

当我转储 的内容时transform,JSON 就在那里。问题是,Nokogiri 在文档顶部标记了:

<?xml version="1.0"?>

解决这个问题的正确方法是什么?

4

1 回答 1

2

试试#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"?>
# >> ######
# >> 
于 2013-08-19T19:34:47.840 回答