- 学习 Ruby on Rails
- Rails 2.1 首页
- Rails 2.1 简介
- Rails 2.1 安装
- Rails 2.1 框架
- Rails 2.1 目录结构
- Rails 2.1 示例
- Rails 2.1 数据库设置
- Rails 2.1 Active Records
- Rails 2.1 数据迁移
- Rails 2.1 控制器
- Rails 2.1 视图
- Rails 2.1 布局
- Rails 2.1 脚手架
- Rails 2.1 和 AJAX
- Rails 2.1 文件上传
- Rails 2.1 发送邮件
- 高级 Ruby on Rails 2.1
- Rails 2.1 RMagick 指南
- Rails 2.1 基本 HTTP 认证
- Rails 2.1 错误处理
- Rails 2.1 路由系统
- Rails 2.1 单元测试
- 高级 Ruby on Rails 2.1
- Rails 2.1 提示与技巧
- 快速参考指南
- 快速参考指南
- Ruby on Rails 2.1 有用资源
- Ruby on Rails 2.1 - 资源
- Ruby on Rails 2.1 - 讨论
Ruby on Rails 2.1 - XML - RXML
Rails 提供两个类来创建 XML 标记和数据结构。
Builder::XmlMarkup − 这生成 XML 标记。
Builder::XmlEvents − 这生成 XML 事件(例如,SAX-like)。
Builder::XmlMarkup
此类可用于轻松创建 XML 标记。发送到 XmlMarkup 对象的所有方法都将转换为等效的 XML 标记。任何带有代码块的方法都将被视为具有代码块中嵌套标记的 XML 标记标签。
假设 xm 是一个 XmlMarkup 对象,我们从 Rails 标准文档站点中选择了一个示例。此处注释部分是从相应的 Rails 语句生成的。
示例
xm.em("emphasized")
# => <em>emphasized</em>
xm.em { xmm.b("emp & bold") }
# => <em><b>emph & bold</b></em>
xm.a("A Link", "href"=>"http://onestepback.org")
# => <a href="http://onestepback.org">A Link</a>
xm.div { br }
# => <div><br/></div>
xm.target("name"=>"compile", "option"=>"fast")
# => <target option="fast" name="compile"\>
# NOTE: order of attributes is not specified.
xm.instruct!
# <?xml version="1.0" encoding="UTF-8"?>
xm.html { # <html>
xm.head { # <head>
xm.title("History")
# <title>History</title>
} # </head>
xm.body { # <body>
xm.comment! "HI" # <!-- HI -->
xm.h1("Header") # <h1>Header</h1>
xm.p("paragraph") # <p>paragraph</p>
} # </body>
} # </html>
Builder::XmlEvents
此类可用于从标记代码创建一系列类似 SAX 的 XML 事件(例如 start_tag、end_tag)。
XmlEvent 对象的使用方式类似于 XmlMarkup 对象,不同之处在于生成一系列事件并将其传递给处理程序,而不是生成基于字符的标记。
示例
xe = Builder::XmlEvents.new(hander)
xe.title("HI")
# This sends start_tag/end_tag/text messages to the handler.
XML 事件处理程序
处理程序对象必须预期以下事件。
start_tag(tag, attrs) − 宣布已找到新标签。tag 是标签的名称,attrs 是标签的属性哈希。
end_tag(tag) − 宣布已找到 tag 的结束标签。
text(text) − 宣布已找到一系列字符 (text)。一系列字符可能会被分成多个 text 调用,因此客户端不能假设单个回调包含所有文本数据。
rails-quick-guide.htm
广告