# Sax parsing

**URL:** <https://www.ruby-forum.com/t/sax-parsing/136918>\
**Category:** Ruby\
**Created:** [May 7, 2008, 11:55am UTC](https://www.ruby-forum.com/t/sax-parsing/136918 "2008-05-07T11:55:26Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![shweta\_kadam](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/53a042/32.png) [@shweta\_kadam](https://www.ruby-forum.com/u/shweta_kadam)\
**Post date:** [May 7, 2008, 11:55am UTC](https://www.ruby-forum.com/t/sax-parsing/136918/1 "2008-05-07T11:55:26Z")

</div>

hi all,  
Has anybody used sax parsing in ruby

---

<div class="post-metadata">

**Author:** ![shweta\_kadam](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/53a042/32.png) [@shweta\_kadam](https://www.ruby-forum.com/u/shweta_kadam)\
**Post date:** [May 7, 2008, 1:02pm UTC](https://www.ruby-forum.com/t/sax-parsing/136918/2 "2008-05-07T13:02:06Z")

</div>

2008/5/7 Shweta K. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> ```
> Has anybody used sax parsing in ruby
> 
> ```

Yes.

---

<div class="post-metadata">

**Author:** ![shweta\_kadam](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/53a042/32.png) [@shweta\_kadam](https://www.ruby-forum.com/u/shweta_kadam)\
**Post date:** [May 7, 2008, 1:07pm UTC](https://www.ruby-forum.com/t/sax-parsing/136918/3 "2008-05-07T13:07:09Z")

</div>

hi,  
I’m using sax parsing in my code but confused about how to add  
listener’s to it and can you tell me in detail how to write sax code in  
ruby as well as listener’s.

---

<div class="post-metadata">

**Author:** ![shweta\_kadam](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/53a042/32.png) [@shweta\_kadam](https://www.ruby-forum.com/u/shweta_kadam)\
**Post date:** [May 7, 2008, 7:08pm UTC](https://www.ruby-forum.com/t/sax-parsing/136918/4 "2008-05-07T19:08:59Z")

</div>

On Wed, May 7, 2008 at 1:07 PM, Shweta K.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

# 

# There are more ways, but I like most to use blocks

# If you prefer to implement listeners as objects the documentation

below

# should give you some sound hints too, I just never felt the need for

it.

# 

require ‘rexml/parsers/sax2parser’

parser = REXML::Parsers::SAX2Parser.new( DATA.read )

parser.listen :start\_element do  
|uri, locname, qname, atts|

puts "I am in start\_element and was called with " \<\<  
[uri, locname, qname, atts].inspect  
end

parser.listen :characters do  
| text |  
puts %\<I am in characters and was called with “#{text}”\>  
end

# 

# For all type of listeners see here:

# 

[http://www.ruby-doc.org/core/classes/REXML/Parsers/SAX2Parser.html#M005185](http://www.ruby-doc.org/core/classes/REXML/Parsers/SAX2Parser.html#M005185)

# and for the paramters they take have a look at the corresponding

method here:

# [http://www.ruby-doc.org/core/classes/REXML/SAX2Listener.html](http://www.ruby-doc.org/core/classes/REXML/SAX2Listener.html)

parser.parse

**END**  
  
  
  
content

HTH  
Robert

–  
[http://ruby-smalltalk.blogspot.com/](http://ruby-smalltalk.blogspot.com/)

* * *

Whereof one cannot speak, thereof one must be silent.  
Ludwig Wittgenstein
