html命令选择,通过命令行替换HTML的选择

不要使用正则表达式或字符串解析。那些只会让你的头受伤。使用解析器。

在Ruby中我会使用引入nokogiri:

require 'nokogiri'

html = '

...

...

'

doc = Nokogiri::HTML(html)

nav = doc.at('nav').content = "this is a new block"

puts doc.to_html

,输出:

this is a new block...

当然你想要的东西,如File.read('snippet.html')更换"this is a new block"。

如果替换文件包含HTML片段,而不是nav内容,而不是使用:

nav = doc.at('nav').replace('this is a new block')

输出将是相同的。 (同样,使用File.read抢,从一个文件,如果这就是你瘦。)

在引入nokogiri,at发现由CSS或XPath访问指定的标签的第一个实例,并返回节点。我使用上面的CSS,但//nav也可以工作。 at猜测访问者的类型。如果您想具体说明,您可以使用at_css或at_xpath,因为可能存在模糊的访问器。另外,Nokogiri有search,它返回一个NodeSet,它就像一个数组。你可以迭代你想要的结果。而且,像at一样,CSS和XPath特定版本分别为css和xpath。

Nokogiri有一个CLI接口,就像这个例子一样简单,它可以工作,但我也可以在sed或Ruby/Perl/Python单线程中完成。

curl -s http://nokogiri.org | nokogiri -e'p $_.css("h1").length'

HTML很少是这个简单不过,特别是任何被发现漫游荒野和CLI或一个班轮解决方案将快速增长失控,或者干脆死了。我说这是基于多年来撰写许多蜘蛛和RSS聚合器 - 当您引入额外的HTML或XML源时,开始的简单生长会变得更加复杂,并且从未如此简单。使用解析器教会我先去他们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值