У меня есть этот HTML код:Nokogiri полоса все атрибуты
<div class="item"><a href="www"></a></div>
, и я хотел бы получить это:
<div><a></a></div>
Как я могу сделать это с Nokogiri?
У меня есть этот HTML код:Nokogiri полоса все атрибуты
<div class="item"><a href="www"></a></div>
, и я хотел бы получить это:
<div><a></a></div>
Как я могу сделать это с Nokogiri?
require 'nokogiri'
doc = Nokogiri::HTML('<div class="item"><a href="www"></a></div>')
Вы можете удалить все атрибуты с помощью xpath
:
doc.xpath('//@*').remove
Или, если вы когда-нибудь понадобится, чтобы сделать что-то более сложное, иногда это легче пройти все элементы с:
doc.traverse do |node|
node.keys.each do |attribute|
node.delete attribute
end
end
Это работает для всех, кроме атрибутов пространства имен xml (xmlns =). вы также можете легко снять их с помощью doc.remove_namespaces! (включите восклицательный знак, в противном случае он их действительно не удалит)
Что вы написали? Мы можем помочь вам лучше, работая над кодом, который вы написали, чем нам начинать с нуля, писать код, который абсолютно не имеет отношения к тому, что у вас есть, и вы должны заставить наши предложения встать на свои места. –
@theTinMan, я пытался сделать это через xpath, но благодаря моему довольно ограниченному знанию этого я не знал, что могу использовать splat. И я думал, что может быть специальная функция Nokogiri, которую я пропустил в своих поисковых системах Google, поэтому я решил не записывать свои исследования на этот раз. – Stephan