繁体   English   中英

在Ruby中使用Hpricot更新单个XML实体?

[英]Update a single XML entity using Hpricot in Ruby?

我将使用Hpricot处理XML文件。 我想随机显示文件中的一些引号,然后想跟踪每个引号的显示频率。 是否可以使用Hpricot更新XML文件中的单个项目(或者是否有其他解决方案可以为我执行此操作?),还是应该在每次显示项目时重写整个XML文件?

我曾经使用nokogiri代替hpricot(它的速度明显更快)。

我做了这样的事情:

#!/usr/bin/env ruby
require 'rubygems'
require 'nokogiri'

FNAME = "/home/kirill/books.xml"

doc = Nokogiri::XML(open(FNAME))

doc.search('title').each {|node|
  node.content=node.content.reverse
}

File.new(FNAME,'w').write doc unless doc.validate

你有这么大的文件,这将是缓慢的方法吗?

还是您想要我不了解的其他内容?

我看到一些解决方案:

  1. 一次分析该文件并将其存储在DB中,并使用其他属性( viewed跟踪viewed
  2. 如果数据库不可用,请解析一次并保留Yaml。 更易于解析,读取和回写。 每次将节省您宝贵的执行时间。

如果您一直在更新文件或与远程服务器同步文件,那么最好将信息存储在数据库中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM