Ruby读取XML使用REXML没话说,方便快捷,但Ruby创建XML呢?
工作上需要使用程序根据规则自动生成一个XML数据文件,准备用Ruby实现,上网查了一些Ruby创建XML文档的介绍,10篇有9篇都是转载那一个文章,使用Builder::XmlMarkup操作,但文章介绍的也太简单了,琢磨半天也没想明白怎么制作稍微复杂一点点的嵌套结构;
如果这个工作用Java实现,不用考虑,自然FreeMarker参上,用模板写XML避免操作复杂的Dom,Element的,懒人的福音啊!我记得原来看过Ruby也有模板的功能,叫啥名忘了,Google吧,发现要找的就是ERB(ERb)
ERB全称是啥没找到,标准库文档中介绍
ERB provides an easy to use but powerful templating system for Ruby;看介绍Ruby On Rails就是使用ERB作为创建文件的模板;但是,网上关于Ruby ERB也退少了(难道因为太简单?不用介绍??),自己收集了一些,留下备用,也给有此需求的朋友留个参考
ERB属于Ruby标准库中的东西,不需要单独安装,模板中动态脚本的写法和JSP基本一个模子扒出来的
<% 写逻辑脚本(Ruby语法) %>
<%= 直接输出变量值或运算结果 %>
给一段示例代码,这段代码是从Hash中读取信息创建sql语句保存到文件中
require "erb"
domains = {...}
sqlTemplate = ERB.new %q{
<%for organization in domains.keys%>
insert into org_domain(Domain, organization) values('<%=domains[organization]%>','<%=organization%>');
<%end%>
}
sqlFile = File.new("./sql.sql", "w")
sqlFile.puts sqlTemplate.result
补充一点,关于模板输出结果可以使用
template.result
template.result(binding)
* 两个方法还是有细微差别的,无参数那种直接使用当前代码段中的上下文环境,对于直接写一些简单测试脚本完全够用
* 当ERB方法要运行在类内的方法,或者访问类内变量时,必须明确调用 .result(binding) 与上下文变量绑定,否则ERB模板无法直接访问到类变量
分享到:
相关推荐
Erubi是ruby的ERB模板引擎
sql_query, ruby gem 使用ERB从 `.sql.erb` 模板加载SQL查询 sql使用ERB从模板加载SQL查询的ruby gem 。它使使用语法突出显示的纯SQL更加容易。让我们从SQL字符串清除你的ruby 代码。支持的扩展:.sql.erb 或者 .erb...
Ytrbium是Ruby中一个简单的YAML + ERB模板库。 与Y: 从可重用模板生成大型的冗长的YAML文件。 收集和整理可重复使用的模板方法在多个文件和import他们到每个模板。 正确直观地缩进模板项。 安装 将此行添加到您...
Erubi Erubi是用于ruby的ERB模板引擎。 它是Erubis的简化分支,但有以下区别:使用转义时处理后缀条件(例如,<%= foo,如果bar%>)支持Frozen_string_literErubi¶↑Erubi是ruby的ERB模板引擎。 它是Erubis的...
当您不希望将大型复杂 SQL 查询作为字符串嵌入到 Ruby 中时,请使用erb_sql_templates 。 gem 允许将 SQL 存储在它们自己的目录和文件中,并且可以使用 ERB 自定义查询。 例子 示例 SQL 模板文件some_query.erb.sql ...
EMAT 嵌入式 Matlab 模板EMat 类在 Matlab 中提供了一个模板系统,如 Ruby 的 ERB 系统。 Matlab 代码可以嵌入到任何文本文档中轻松控制文档生成流程。 这里展示了一个简单的例子: >> x = 42; >> tmpl = 'x 的值为 ...
注意:假定每个文件都有一个.erb扩展名,并且不应作为模板文件名给出的文件名的一部分。 Armadillo . render ( "myview.html" , { :items => [ 1 , 2 , 3 ] } , { :base_path => File . join ( Dir . pwd , ...
在任何Ruby项目中编译嵌入式Ruby模板文件。 文件是使用Erubis或ERB gem生成的。目录安装npm $ npm install rails-erb-loader --save-dev纱$ yarn add -D rails-erb-loader用法将rails-erb-loader添加到您的规则中。...
用法有关Ruby代码和ERB模板的手动评估,请参见demo.rb 您可以通过注册ActionView模板处理程序来使用它们,例如,在config / initializer文件中,如下所示: # in config/intializer/safemode_tempate_handlers....
得克萨斯州描述德州提供了一种使用ERB模板从LaTeX文档创建PDF的简便方法。 它通过将* .tex.erb模板编译为* .tex文件,然后运行pdflatex将编译后的模板转换为PDF文件来实现。安装如果尚未安装,请在命令提示符下安装...
ruby GEM 既是一个库,又是一个可执行文件,它可以使用ruby的模板轻松地使用Consul(发现和键/值存储)中的数据生成文件。 它还在呈现文件时支持启动程序和保姆程序,从而在数据确实发生更改时通知程序。 它适用于...
从合并范围,ERB模板和Hiera数据生成文档 安装 gem install erb-hiera 用法 $ ./bin/erb-hiera --help Options: --config=<s> specify config file --hiera-config=<s> specify hiera config file --dry-run don'...
卷发棒Curlybars是Handlebars子集的Ruby实现,其中获取用于渲染模板的上下文基于... 每当在模板中遇到诸如{{recipient.name}}类的更深的引用(如path)时,根演示者都应该拥有一个名为recipient的方法,该方法返回一个
StringTemplate Rails最快的模板引擎。 概念 Ruby的String文字具有如此强大的内插机制。 它几乎是一个模板引擎,是组成...这是一个由脚手架生成的ERB模板及其string_template版本的示例。 ERB: <p id="noti
ERB模板更易于向初学者讲授,并且更易于与广泛的人(例如设计师)进行协作。 对于某些人来说,ERB在眼睛上更容易。 据我所知,没有其他好的工具可以将HAML转换为ERB。 引用HAML维护者Nathan Weizenbaum的话: 不...
您所有的标记都包含在模板中。 该模板仅在您的视图中引用方法。 这种严格的分隔使编写干净的模板变得更容易,测试视图也更容易,并且在应用程序的前端工作更加有趣。 为什么? 我喜欢写Ruby。 我喜欢编写HTML。 ...
它还试图成为一个微小的框架,用于定义要在Rails,Sinatra或任何其他框架的ERB和HAML模板中使用的视图助手。 它提供了一个mixin,用于从任何类内联构建HTML标记或定义具有所有面向对象编程优势(例如继承和封装)的...
然后,该数据结构将在Jinja2和ERB模板文件中使用,以生成最终的配置文件。 编码器宏用于将Python或Ruby数据结构转换为另一种格式。支持的格式Apache配置格式Erlang配置格式尼尼JSON格式Logstash 汤姆XML格式YAML...
菲比 使用ERB模板,用Ruby编写的简化的(目前为67SLOC!) 克隆。 我之所以决定实施此方法,是因为rawdog缺少模板支持(它仅支持通过CSS进行样式设置),并且静态提要阅读器没有其他替代选择。 它只是从“提要”文件...