1. 使用REXML
doc = REXML::Document.new(File.open(file_path))
doc.elements.each(’log/logentry’) do |ele|
author_ele = ele.get_elements(’author’)
msg_ele = ele.get_elements(’msg’)
end
2. 使用XmlSimple
xml_file = File.open(file_path)
data = XmlSimple.xml_in(xml_file)
data['logentry'].each do |item|
item['msg']
item['author']
end
3. 使用Hpricot
Hpricot是一个HTML解释的库,支持XML。Hpricot允许开发者通过CSS-selectors和X-Path访问html元素,因此你很轻松就可以明确目标标记,还有它是用C语言写的,因此相当快。
安装方法:gem install hpricot
# load the RedHanded home page
doc = Hpricot(open(”http://redhanded.hobix.com/index.html”))
# change the CSS class on links
(doc/”span.entryPermalink”).set(”class”, “newLinks”)
# remove the sidebar (doc/”#sidebar”).remove
# print the altered HTML
puts doc
分享到:
相关推荐
在处理XML数据时,Ruby提供了一些库来方便我们读取、解析和操作XML文档。本篇文章将详细探讨“Ruby XML封装好的操作XML对象”的知识点,通过分析`xml_parse.rb`这个文件,我们将了解到如何在Ruby中有效地处理XML。 ...
Ruby库如`roo`可以方便地读取Excel文件,而`Nokogiri`则可以用来创建和操作XML文档。 首先,我们需要了解`roo`库。`roo`是Ruby中用于读取不同类型的电子表格文件(如Excel、OpenOffice、Google Sheets)的库。安装`...
虽然具体内容无法在此提供,但我们可以推测这篇文章可能讨论了如何在Ruby中处理XML数据,可能是解析XML文档、创建XML结构或者使用特定的Ruby库如Nokogiri来操作XML。 在标签中,“源码”意味着讨论的内容可能涉及到...
1. **速度**:由于Ox是用C语言编写的,并且直接操作字节流,因此它的解析速度非常快,比许多纯Ruby的XML解析库更高效。 2. **简洁性**:Ox的设计目标是保持简单,因此它的API相对较小,易于理解和使用。开发者可以...
SAX(Simple API for XML)解析器是基于事件的,它在解析XML文档时逐个读取XML文件的各个元素,并触发事件处理程序。而DOM(文档对象模型)解析器则将整个XML文档加载到内存中,并构建成一个树形结构,这样可以更...
在Ruby中,你可以为你的类定义一个或多个`xml_accessor`,这些方法会自动处理XML的读写操作。例如,如果你有一个名为`Employee`的类,你可以这样定义一个属性: ```ruby class Employee include ROXML xml_...
SAX则是一种事件驱动的解析方式,它逐行读取XML,触发相应的事件回调。REXML提供了类似DOM的解析方式,即Tree Parsing,这种方法适合处理较小的XML文档,因为它将整个XML结构加载到内存中。 以下是一个使用REXML...
通过定义简单的类和模块,HappyMapper能够自动将XML元素映射到Ruby类的属性上,这样我们就可以像操作普通的Ruby对象一样操作解析后的XML数据。 在实际应用中,首先我们需要包含HappyMapper库,并创建一个继承自...
本文详细介绍了如何使用Ruby语言中的REXML库来解析XML格式的数据,包括DOM和XPath两种方式的操作。同时,还提到了在使用REXML过程中需要注意的安全问题。对于需要处理XML文件的Ruby开发者来说,掌握这些技巧将是非常...
流样式则类似于SAX解析,逐行读取XML文档,适合处理大型XML文件,以避免内存消耗。 对于树样式的使用,我们可以创建一个REXML::Document对象,将XML文件加载到内存中。例如: ```ruby require "rexml/document" ...
Nokogiri是Ruby社区广泛使用的库,用于解析HTML、XML文档,提供强大的搜索、操作和转换功能。现在,Crystal语言也有了类似的工具,使得开发者可以在保持高效性能的同时,享受与Nokogiri类似的解析体验。 描述中的...