科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件在Rails App上写XML

在Rails App上写XML

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在这篇文章里,我们将要用这个Builder库从数据库表中创建一个XML文件。

作者:Deepak Vohra/李安民编译 来源:51CTO.com 2007年9月14日

关键字: Rails App XML

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共19页)

安装XML Builder

在安装Builder之前,我们需要安装在Rails 框架下的Ruby 和RubyGems(标准的Ruby 包管理器)。下载Ruby Windows安装程序并且双击这个ruby185-21.exe 文件。在Ruby 安装向导开始后,点击Next并且接受许可协议。选择默认的部件安装,包括RubyGems 包管理器。指定一个路径安装Ruby(默认路径是c:/ruby),接着再单击Next。指定一个开始目录文件夹并且单击Install 键来安装Ruby和RubyGems。接下来,安装Rails。从c:/ruby,也就是Ruby 安装到的那个路径,来运行下面的命令来安装Rails及Rails附属文件。

c:/ruby>gem install rails --include-dependencies

Builder包括了RubyGems包管理器。运行下面的命令来安装Builder 2.0.0。

C:/ruby>gem install builder

这个Builder::XmlMarkup类提供了表1中讨论的方法。

方法 
描述
cdata!(text) 
增加了一个CDATA 部分。
comment!(comment_text)
增加一个注释。

declare!(inst, *args, &block)

增加一个声明。参数指定为0或者更多的参数。

instruct!(directive_tag=:xml, attrs={})

增加一个处理指示。属性是用一个哈希表来指定的。

new(options={}) 

创建一个XML标记Builder对象,接下来的选项:target=>targetObject:indent=>indentation :margin=>initial_indentation声明了一个哈希表的入口。

target!()
返回Builder 对象的目标。

表1:Builder::XmlMarkup方法

为了从数据库中创建一个XML文件,我们也需要安装MySQL数据库。下载MySQL 5.0。双击Setup.exe安装MySQL,然后创建一个MYSQL服务器实例。

从数据库中创建一个XML文件

在这一节,我们将会从数据库表中创建一个XML文件。为了从数据库中创建一个XML文件,我们先创建一个Rails 应用程序:

C:/ruby>rails databasexml

为了指定测试用数据库,在app/config/database.yml文件中修改开发模式设置。这个MySQL 数据库的开发模式设置在下表中列了出来。

development: 

adapter: mysql

database: test 

username: root 

password: nil

host: localhost

我们将要使用ActiveRecord迁移去创建一个数据库表。利用下面的Ruby 命令来创建一个模型脚本,从而创建一个迁移脚本:

C:\ruby\databasexml> ruby script/generate model catalog

一个模型脚本app/models/catalog.rb和迁移脚本script db/migrate/001_create_catalogs.rb就这样被创建好了。这个继承自ActiveRecord::Migration类的迁移脚本类CreateCatalogs,在下表被列出:

class CreateCatalogs < ActiveRecord::Migration

def self.up

create_table :catalogs do |t|

# t.column :name, :string

end

end

def self.down

drop_table :catalogs

end

end

默认的迁移脚本由self.up方法和self.down方法组成。其中,self.up方法被调用来运行一个迁移并且创建一个数据库表。转化自ActiveRecord::Migration类的create_table被用来创建一个数据库表目录。ActiveRecord用来以复数形式映射一个模型类到一个数据库表中。这个模型类是单数的,大写的;数据库表却是复数而且是小写的。在Ruby on Rails应用程序的例子中,这个模型类是Catalog,数据库表是catalogs。

修改这个迁移脚本001_create_catalogs.rb 去创建一个数据库表并且添加数据到表中。在create_table转化中,用定期刊物的专栏、出版者、题目和作者来创建一个表目录,如下所示:

class CreateCatalogs < ActiveRecord::Migration

def self.up

create_table :catalogs do |t|

t.column :journal, :string, :limit => 255

t.column :publisher, :string, :limit => 255

t.column :edition, :string, :limit => 255

t.column :title, :string, :limit => 255

t.column :author, :string, :limit => 255

end

Catalog.create :journal => "IBM developerWorks",

:publisher => "IBM", :edition =>

" October 2005",

:title=> "JAXP validation",

:author=>"Brett McLaughlin"

Catalog.create :journal => "IBM developerWorks",

:publisher => "IBM", :edition => "July 2006",

:title=> "The Java XPath API",

:author=>"Elliotte Rusty Harold"



end

def self.down

drop_table :catalogs

end

end

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章