主页 > 知识库 > Ruby中使用Nokogiri包来操作XML格式数据的教程

Ruby中使用Nokogiri包来操作XML格式数据的教程

热门标签:北京语音电销机器人价格 开封百应电销机器人联系方式 真人语音电销机器人系统 邯郸外呼调研线路 电话机器人电话卡封号怎么办 武汉呼叫中心外呼系统线路商 买了外呼系统不想用了怎么办 乐昌电话机器人 浦东上海400开头的电话申请

安装

对于Ubuntu,需要安装好 libxml2, libxslt 这两个组件:

$ apt-get install libxml2 libxslt

然后就可以:

$ gem install nokogiri

可选项
nokogiri提供了一些解析文件时的可选项,常用的有:

  • NOBLANKS : 删除空节点
  • NOENT : 替代实体
  • NOERROR : 隐藏错误报告
  • STRICT : 精确解析,当解析到文件异常时抛出错误
  • NONET : 在解析期间禁止任何网络连接.

可选项使用方式举例(通过块调用):

doc = Nokogiri::XML(File.open("blossom.xml")) do |config|
config.strict.nonet
end

或者

doc = Nokogiri::XML(File.open("blossom.xml")) do |config|
config.options = Nokogiri::XML::ParseOptions::STRICT | Nokogiri::XML::ParseOptions::NONET
end

解析

可以从文件,字符串,URL等来解析。靠的是这两个方法 Nokogiri::HTML, Nokogiri::XML:

读取字符串:

html_doc = Nokogiri::HTML("html>body>h1>Mr. Belvedere Fan Club/h1>/body>/html>")
xml_doc = Nokogiri::XML("root>aliens>alien>name>Alf/name>/alien>/aliens>/root>")

读取文件:

f = File.open("blossom.xml")
doc = Nokogiri::XML(f)
f.close

读取URL:

require 'open-uri'
doc = Nokogiri::HTML(open("http://www.threescompany.com/"))

寻找节点

可以使用XPATH 以及 CSS selector 来搜索: 例如,给定一个XML:

books>
 book>
 title>Stars/title>
 /book>
 book>
 title>Moon/title>
 /book>
/books>

xpath:

@doc.xpath("//title")

css:

@doc.css("book title")

修改节点内容

title = @doc.css("book title").firsto
title.content = 'new title'
puts @doc.to_html

# =>
...
 title>new title/title>
...

修改节点的结构

first_title = @doc.at_css('title')
second_book = @doc.css('book').last

# 可以把第一个title放到第二个book中
first_title.parent = second_book

# 也可以随意摆放。
second_book.add_next_sibling(first_title)

# 也可以修改对应的class
first_title.name = 'h2'
first_title['class']='red_color'
puts @doc.to_html
# => h2 class='red_color'>.../h2>

# 也可以新建一个node
third_book = Nokogiri::XML::Node.new 'book', @doc
third_book.content = 'I am the third book'
second_book.add_next_sibling third_book
puts @doc.to_html
# =>
...
books>
 ...
 book>I am the third book/book>
/books>

您可能感兴趣的文章:
  • Ruby中XML格式数据处理库REXML的使用方法指南
  • 实例解析Ruby程序中调用REXML来解析XML格式数据的用法
  • Ruby使用REXML库来解析xml格式数据的方法
  • Ruby程序中创建和解析XML文件的方法
  • 在Ruby中处理XML和XSLT以及XPath的简单教程
  • Ruby的XML格式数据解析库Nokogiri的使用进阶

标签:石嘴山 自贡 鄂州 淄博 河北 松原 六安 宜春

巨人网络通讯声明:本文标题《Ruby中使用Nokogiri包来操作XML格式数据的教程》,本文关键词  Ruby,中,使用,Nokogiri,包,来,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Ruby中使用Nokogiri包来操作XML格式数据的教程》相关的同类信息!
  • 本页收集关于Ruby中使用Nokogiri包来操作XML格式数据的教程的相关信息资讯供网民参考!
  • 推荐文章