Nokogiri XML文件输出位于



我需要用Ruby和/或Rails生成一个XML文件,并安装Nokogiri。

  1. Ruby代码将在哪个文件中生成XML文件
  2. 如何告诉Nokogiri生成XML并将其放入文件中
  3. XML输出位于哪里

这是我的控制器文件中的代码:

class MonkeyTalkController < ApplicationController
require 'rubygems'
require 'nokogiri'
  def edit
  end
  def update
#debugger
    render :text => MonkeyTalk.new(params).build_xml
    builder = Nokogiri::XML::Builder.new(:encoding => 'utf-8') do |xml|
      xml.root {
  xml.products{
         xml.widget {
          xml.id_ "10"
          xml.name "Awesome widget"
          }
        }
      }
      doc = Nokogiri::XML.parse(params)
      File.open('xml.out', 'w') do |fo|
      fo.print doc.to_s
      end
    end
    puts builder.to_xml
  end
end

我需要对Ruby和Rails应用程序的结构以及Nokogiri的工作原理有一个基本的了解。

要生成xml文件,不需要Rails。Ruby(和Nokogiri或一些订单生成器)就足够了。

首先,您必须构建您的xml:

builder = Nokogiri::XML::Builder.new(:encoding => 'utf-8') do |xml|
  xml.root do
    xml.products do
      xml.widget do
        xml.id_ "10"
        xml.name "Awesome widget"
      end
    end
  end
end

您可以使用builder.to_xml:从该生成器中获取xml字符串

xml_string = builder.to_xml # => "<?xml version="1.0" encoding="utf-8"?>n<root>n  <products>n    <widget>n      <id>10</id>n      <name>Awesome widget</name>n    </widget>n  </products>n</root>n"

要将此字符串保存到文件中,请使用File.openFile#write:

# open a file instance with path '/path/to/file.xml' in write mode (-> 'w')
File.open('/path/to/file.xml', 'w') do |file|
  # write the xml string generated above to the file
  file.write xml_string
end

一个重要的注意事项:如果您不再需要打开的所有文件,您必须始终确保关闭这些文件。带有块的File.open(如我在上面剪下的)将在块中的代码执行后自动为您关闭文件。。。

您的文件已写入xml.out。这个文件在哪里?这取决于启动应用程序时的工作目录,以及您的代码或任何库是否调用过Dir.chdir来更改工作目录。

您可以输出Dir.pwdFile.expand_path('xml.out')来查看此文件的写入位置。

相关内容

  • 没有找到相关文章

最新更新