如何删除重复的HTML元素?

问题描述 投票:0回答:1

我有以下input.html,其中有几个重复的<p>..</p>元素。例如,<p><strong><span style="color:blue; font-size: 24px;">Midmarket</span></strong></p>重复3次。

input.html

	<html>
	<body>
	
	<p><strong><span style="color:blue; font-size: 24px;">Midmarket</span></strong></p>
	<p><strong><span style="color:green; font-size: 20px;">Car</span></strong><p>
	<p>France</p>
	<p>2178</p>
	<p><strong><span style="color:blue; font-size: 24px;">Midmarket</span></strong></p>
	<p><strong><span style="color:green; font-size: 20px;">Car</span></strong><p>
	<p>Germany</p>
	<p>888</p>
	<p><strong><span style="color:blue; font-size: 24px;">Midmarket</span></strong></p>
	<p><strong><span style="color:red; font-size: 20px;">Mon</span></strong><p>
	<p>Germany</p>
	<p>921</p>
	<p><strong><span style="color:#F87217; font-size: 24px;">Government</span></strong></p>
	<p><strong><span style="color:green; font-size: 20px;">Car</span></strong></p>
	<p>Canada</p>
	<p>1618.5</p>
	<p><strong><span style="color:#F87217; font-size: 24px;">Government</span></strong></p>
	<p><strong><span style="color:green; font-size: 20px;">Car</span></strong><p>
	<p>Germany</p>
	<p>1321</p>
	<p><strong><span style="color:#F87217; font-size: 24px;">Government</span></strong></p>
	<p><strong><span style="color:green; font-size: 20px;">Car</span></strong><p>
	<p>Germany</p>
	<p>1513</p>
	<p><strong><span style="color:#F87217; font-size: 24px;">Government</span></strong></p>
	<p><strong><span style="color:red; font-size: 20px;">Mon</span></strong><p>
	<p>France</p>
	<p>1899</p>
	<p><strong><span style="color:#C48189; font-size: 24px;">Enterprise</span></strong></p>
	<p><strong><span style="color:red; font-size: 20px;">Mon</span></strong><p>
	<p>Canada</p>
	<p>2665.5</p>
	<p><strong><span style="color:#C48189; font-size: 24px;">Enterprise</span></strong></p>
	<p><strong><span style="color:red; font-size: 20px;">Mon</span></strong><p>
	<p>Canada</p>
	<p>345</p>
	
	</body>
	</html>

而且我想删除重复的<p>..</p>元素,仅保留每个元素的第一次出现。

out.html

<html>
<body>

<p><strong><span style='font-size:24px;color:blue;'>Midmarket</span></strong></p>
<p><strong><span style='font-size:20px;color:green;'>Car</span></strong></p>
<p>France</p>
<p>2178</p>
<p>Germany</p>
<p>888</p>
<p><strong><span style='font-size:20px;color:red;'>Mon</span></strong></p>
<p>Germany</p>
<p>921</p>
<p><strong><span style='font-size:18px;color:#F87217;'>Government</span></strong></p>
<p><strong><span style='font-size:20px;color:green;'>Car</span></strong></p>
<p>Canada</p>
<p>1618.5</p>
<p>Germany</p>
<p>1321</p>
<p>1513</p>
<p><strong><span style='font-size:20px;color:red;'>Mon</span></strong></p>
<p>France</p>
<p>1899</p>
<p><strong><span style='font-size:18px;color:#C48189;'>Enterprise</span></strong></p>
<p><strong><span style='font-size:20px;color:red;'>Mon</span></strong></p>
<p>Canada</p>
<p>2665.5</p>
<p>345</p>

</body>
</html>

我试图在数组中添加<p>元素,然后调用uniq,但是它不起作用,因为数组a的长度与数组b的长度相同>>

我该怎么做?

require 'nokogiri'

doc = File.open("input.html") { |f| Nokogiri::HTML(f) }

a=[]
doc.css("p").each{|el| a.push(el) }

b = a.uniq

我有以下input.html,其中包含多个重复的

..

元素。例如,

Midmarket

&...
html ruby nokogiri
1个回答
0
投票

这可能会引导您朝正确的方向前进,例如,您是否要删除第二辆Car,尚不清楚您的示例,但问题是要删除重复的p's

© www.soinside.com 2019 - 2024. All rights reserved.