`

ruby 解析 xml

    博客分类:
  • Ruby
阅读更多
1.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:noNamespaceSchemaLocation="book1.xsd" generated="2008-12-28T19:12:24">
<book1>
<bianhao>GAR001</bianhao>
<name>计算机组装与维护教程</name>
<借阅时间>2008-03-14T17:23:28</借阅时间>
<author>刘瑞新</author>
<publish>机械工业出版社</publish>
<count>1</count>
<language>中文</language>
<manager>ctec</manager>
</book1>
<book1>
<bianhao>GAR002</bianhao>
<name>计算机接口技术</name>
<借阅时间>2008-03-14T17:27:16</借阅时间>
<author>刘星等</author>
<publish>机械工业出版社</publish>
<count>1</count>
<language>中文</language>
<manager>ctec</manager>
</book1>
<book1>
<bianhao>GAR003</bianhao>
<name>数值分析与算法</name>
<借阅时间>2008-03-14T17:28:50</借阅时间>
<author>徐士良</author>
<publish>机械工业出版社</publish>
<count>1</count>
<language>中文</language>
<manager>ctec</manager>
</book1>
</dataroot>
ruby.rb文件内容:
require 'rexml/document'

xml =REXML::Document.new(File.open"1.xml"
xml.each_element('//book1') do |newbook|       
puts newbook.elements['bianhao'].text
puts newbook.elements['name'].text
        
        puts newbook.elements['author'].text
       
        puts newbook.elements['publish'].text
        puts newbook.elements['count'].text
        puts newbook.elements['language'].text
        puts newbook.elements['manager'].text
        end


转自: http://zmfbird.iteye.com/blog/306174



Ruby解析HTML插件Nokogiri使用实践
2010-05-20 10:27
关于ruby解析XML,HTML的插件介绍得很多,其中最出名的的有Hpricot和Nokogiri, 关于这两个,推荐选用Nokogiri.(http://www.espace.com.eg/blog/2009/03/24/nokogiri-vs-hpricot/)

参考安装和文档:http://nokogiri.org

Nokogiri (Github repository), a new HTML and XML parser for Ruby. It "parses and searches XML/HTML faster than Hpricot" (Hpricot being the current de facto Ruby HTML parser) and boasts XPath support, CSS3 selector support (a big deal, because CSS3 selectors are mega powerful) and the ability to be used as a "drop in" replacement for Hpricot.

总体来说,Nokogiri是较好的一个Ruby版HTML/XML解析插件。

安装:gem install nokogiri

注:有时候会遇到libxml2相关的错误:无法找到libxml2.dll 或:无法定位程序输入点xmlNewDocPI于动态链接库 libxml2.dll上。 这时,在nokogiri安装目录下C:\Ruby18\lib\ruby\gems\1.8\gems\nokogiri-1.4.1-x86-mswin32\,找到ext\nokogiri\目录下的几个dll文件,拷贝到C:\Ruby18\bin目录下。

测试:建立一个ruby文件

require 'nokogiri'
require 'open-uri'
 doc = Nokogiri::HTML(open('http://zhangxh.net/hr/quiz/1/bar_list.html'))
doc.xpath('*').each do |link|
     puts link.content
end

运行:得到相应结果!



page.css('td') # should return an array of 4 table cell nodes
page.css('td')[3] # return the 4th 'td' node, counting starts at 0
http://nokogiri.rubyforge.org/nokogiri/Nokogiri/XML/Document.html

转自: http://hi.baidu.com/kenrome/blog/item/269730120149795df919b824.html


本人自己写的代码:

require 'nokogiri'
require 'open-uri'

def getXML()
	#从网站"intsig.net"获取body为xml格式的文件
	#<card_list>
	#<card t="1" cid = "21212">http://fifjeiaofjoe//</card>
	#</card_list>
	doc = Nokogiri::HTML(open('http://intsig.net'))
	#puts(doc)
	doc.search('//html/body/card_list/card').each do |card|
		puts(card.text)
		t = card.attribute("t")
		cid = card.attribute("cid")
		puts(t)
		puts(cid)
	end
end
分享到:
评论

相关推荐

    ruby中xml文件解析

    ruby对xml文件的解析,不是很全,应该还是有一定帮助的

    ruby,xml

    2. **Ruby解析XML**:介绍如何使用Nokogiri库读取和解析XML文件,包括解析XML文档、查找特定元素、提取数据等。 3. **XPath和CSS选择器**:如果Nokogiri被使用,那么可能会提及XPath和CSS选择器,它们是定位XML文档...

    实例解析Ruby程序中调用REXML来解析XML格式数据的用法

    本篇文章将深入探讨如何在Ruby程序中利用REXML库解析XML格式的数据。 首先,我们要了解REXML的基本概念。REXML是Ruby的一个标准库,由Sean Russell开发,它是一个纯Ruby实现的XML解析器。虽然Ruby还有其他如...

    ruby xml封装好的操作XML对象

    Nokogiri允许我们快速创建和解析XML文档,同时提供了XPath和CSS选择器来查找文档中的特定元素。例如,我们可以这样加载一个XML文件: ```ruby require 'nokogiri' xml_file = File.open('example.xml') doc =...

    ruby和xml

    要用ruby解析xml,使用socket通信

    Ruby-Ox一个快速的XML解析器

    这个解析器的独特之处在于它的简洁性和速度,这得益于其底层的C语言实现,为Ruby提供了一个轻量级且高性能的接口来解析XML数据。 XML(可扩展标记语言)是一种广泛应用的数据交换格式,常用于Web服务、配置文件和...

    Ruby-HappyMapper允许您快速轻松地解析XML数据并将其转换成ruby的数据结构

    一旦定义好这个类,我们就可以使用`parse`方法解析XML字符串或文件,将数据转换成Ruby对象: ```ruby xml = '&lt;user&gt;&lt;id&gt;1&lt;/id&gt;&lt;name&gt;John Doe&lt;/name&gt;&lt;email&gt;johndoe@example.com&lt;/email&gt;&lt;/user&gt;' user = User.parse...

    ruby使用REXML解析处理xml.pdf

    Ruby 使用 REXML 解析处理 XML REXML 是一个 Ruby 库,用于解析和处理 XML 文档。下面是使用 REXML 解析处理 XML 的一些知识点: 1. 基本使用:使用 REXML 解析 XML 文档,需要首先将 XML 字符串转换为 Document ...

    在Ruby中处理XML和XSLT以及XPath的简单教程

    SAX(Simple API for XML)解析器是基于事件的,它在解析XML文档时逐个读取XML文件的各个元素,并触发事件处理程序。而DOM(文档对象模型)解析器则将整个XML文档加载到内存中,并构建成一个树形结构,这样可以更...

    ruby操作xml

    - 解析XML:使用`Nokogiri::XML`方法打开一个XML文件,然后可以通过`search`或`at`方法使用XPath或CSS查询文档。 - 修改XML:可以创建新的元素,使用`add_child`方法添加到树中,或者用`content=`设置元素内容。 ...

    Ruby-Crystal的一个Html解析器类似于Ruby的Nokogiri

    Nokogiri是Ruby社区广泛使用的库,用于解析HTML、XML文档,提供强大的搜索、操作和转换功能。现在,Crystal语言也有了类似的工具,使得开发者可以在保持高效性能的同时,享受与Nokogiri类似的解析体验。 描述中的...

Global site tag (gtag.js) - Google Analytics