如何使用 ruby 替换文本文件或 xml 文件的第一行?我在复制奇怪的 xml API 时遇到问题,需要在创建 XML 文件后编辑文档指令。我必须这样做很奇怪,但在这种情况下,这是必要的。
问问题
1123 次
2 回答
2
如果您正在编辑 XML,请使用专门为该任务设计的工具。sub
,gsub
如果正在操作的 XML 不受您的控制,则正则表达式不是好的选择。
使用Nokogiri解析 XML、定位节点并更改它们,然后发出更新的 XML。
SO上有很多例子展示了如何做到这一点,还有Nokogiri网站上的教程。
于 2013-02-10T16:51:53.290 回答
1
有几种不同的方法可以做到这一点:
使用
ARGF
(假设您的 ruby 程序将文件名作为命令行参数)ruby -e "puts ARGF.to_a[n]" yourfile.xml
定期打开文件然后读取
n
行File.open("yourfile") { |f| line = nil n.times { line = f.gets } puts line }
这种方法对内存的占用较少,因为一次只考虑一行,也是最简单的方法。
使用
IO.readlines()
(仅当整个文件适合内存时才有效!)IO.readlines("yourfile")[n]
IO.readlines(...)
会将文件中的每一行读入一个数组。
在n
上述所有示例中nth
,您的文件所在的行。
于 2013-02-10T16:41:50.357 回答