# Swapping tags & deleting tags via nokogiri

**URL:** <https://www.ruby-forum.com/t/swapping-tags-deleting-tags-via-nokogiri/180265>\
**Category:** Ruby\
**Created:** [December 16, 2009, 5:55am UTC](https://www.ruby-forum.com/t/swapping-tags-deleting-tags-via-nokogiri/180265 "2009-12-16T05:55:30Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![pablitoman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/b487fb/32.png) [@pablitoman](https://www.ruby-forum.com/u/pablitoman)\
**Post date:** [December 16, 2009, 5:55am UTC](https://www.ruby-forum.com/t/swapping-tags-deleting-tags-via-nokogiri/180265/1 "2009-12-16T05:55:30Z")

</div>

let’s say I have an xml document like this

 some text blah blah 

is there a simple method in nokogiri to:

step 1: convert all tags to something else (e.g.,

# ) creating this…

# some text blah blah
  
  

step 2: remove all tags but keep the internal tags, creating  
this

# some text blah blah
  

I imagine that step 2 is done all the time and there’s probably a  
simple way to do it, but I’m not sure where to begin with either.

file = Nokogiri::XML(File.new(file\_name)) # \<= this is about as far  
as I’ve gotten (not very…)

Thanks!!

---

<div class="post-metadata">

**Author:** ![pablitoman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/b487fb/32.png) [@pablitoman](https://www.ruby-forum.com/u/pablitoman)\
**Post date:** [December 16, 2009, 6:00am UTC](https://www.ruby-forum.com/t/swapping-tags-deleting-tags-via-nokogiri/180265/2 "2009-12-16T06:00:46Z")

</div>

Check out Loofah: [GitHub - flavorjones/loofah: Ruby library for HTML/XML transformation and sanitization](http://github.com/flavorjones/loofah)

* * *

frmsrcurl:  
[http://compgroups.net/comp.lang.ruby/swapping-tags-deleting-tags-via-nokogiri](http://compgroups.net/comp.lang.ruby/swapping-tags-deleting-tags-via-nokogiri)

---

<div class="post-metadata">

**Author:** ![pablitoman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/b487fb/32.png) [@pablitoman](https://www.ruby-forum.com/u/pablitoman)\
**Post date:** [December 16, 2009, 6:25am UTC](https://www.ruby-forum.com/t/swapping-tags-deleting-tags-via-nokogiri/180265/3 "2009-12-16T06:25:21Z")

</div>

On Tue, Dec 15, 2009 at 11:55 PM, pablitoman [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> I imagine that step 2 is done all the time and there's probably a simple way to do it, but I'm not sure where to begin with either.
> 
> file = Nokogiri::XML(File.new(file\_name)) # \<= this is about as far  
> as I’ve gotten (not very…)

Try Loofah, which is based on Nokogiri:

require “loofah”

xml = \<\<-eoxml  
  
  
  
some text blah blah  
  
  
  
eoxml

doc = Loofah.xml\_document(xml)  
scrubber = Loofah::Scrubber.new do |node|  
node.name = “h1” if node.name == “abcde”  
if node.name == “fghij”  
node.before node.inner\_html  
node.remove  
end  
end  
doc.scrub!(scrubber)  
puts doc.to\_s

# =\> \<?xml version="1.0"?\>

# 

# 

# 

# some text blah blah

# 

#
