gpt4 book ai didi

xhtml - Nokogiri 替换标签值

转载 作者:行者123 更新时间:2023-12-02 17:55:25 26 4
gpt4 key购买 nike

如何将“foo”替换为“bar”?

来自

<h1>foo1<p>foo2<a href="foo3.com">foo4</a>foo5</p>foo6</h1>

<h1>bar1<p>bar2<a href="foo3.com">bar4</a>bar5</p>bar6</h1>

我只想替换标签内部内容,没有标签属性。

有什么想法吗?

最佳答案

require 'rubygems'
require 'nokogiri'

doc = Nokogiri::HTML(DATA)

doc.xpath('//text()').each {|foo|
dummy = foo.add_previous_sibling(Nokogiri::XML::Node.new("dummy", doc))
dummy.add_previous_sibling(Nokogiri::XML::Text.new(foo.to_s.gsub(/foo/, "bar"), doc))
foo.remove
dummy.remove
}
puts doc

__END__
<h1>foo1<p>foo2<a href="foo3.com">foo4</a>foo5</p>foo6</h1>

我本以为 foo.inner_html.gsub!(/foo/, "bar") 可以工作,或者 foo.inner_html = foo.inner_html.gsub(/foo/, "栏”),但事实并非如此。
虚拟节点是为了让新的文本节点与旧的文本节点合二为一。

关于xhtml - Nokogiri 替换标签值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2244539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com