【问题标题】:Nokogiri XSLT tagging document as XML type when using JSON使用 JSON 时 Nokogiri XSLT 将文档标记为 XML 类型
【发布时间】:2013-08-19 18:32:51
【问题描述】:

我正在使用 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"?>

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

【问题讨论】:

  • @document 是什么?
  • 好点 - 更新了我的问题以澄清 @document 的来源。

标签: ruby xml json xslt nokogiri


【解决方案1】:

试试下面的#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"?>
# >> ######
# >> 

【讨论】:

  • 使用 apply_to 而不是 transform 成功了。我想我有一些阅读要做 - 谢谢你的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 2015-08-14
  • 1970-01-01
  • 2020-01-26
  • 2023-03-30
相关资源
最近更新 更多