# Get URL (URI) Process

**URL:** <https://www.ruby-forum.com/t/get-url-uri-process/99934>\
**Category:** Rails\
**Created:** [November 12, 2005, 12:49pm UTC](https://www.ruby-forum.com/t/get-url-uri-process/99934 "2005-11-12T12:49:24Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![dylans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/90ced4/32.png) [@dylans](https://www.ruby-forum.com/u/dylans)\
**Post date:** [November 12, 2005, 12:49pm UTC](https://www.ruby-forum.com/t/get-url-uri-process/99934/1 "2005-11-12T12:49:24Z")

</div>

I’m looking for Class or Method that will pass back a document when  
given a  
URL.  
I looked into the URI:: Class, but couldn’t find any examples of it’s  
use.

For example, if I had the URL: [http://www.asdf.com/asdf.do?sdf=asdf](http://www.asdf.com/asdf.do?sdf=asdf)  
… sent the request via GET or POST, and it gave me back an XML  
document.

Something like the following would be great:  
@doc = SOMECLASS::get(URL, POST)

Any references would be greatly appreciated.  
Thanks !

---

<div class="post-metadata">

**Author:** ![dylans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/90ced4/32.png) [@dylans](https://www.ruby-forum.com/u/dylans)\
**Post date:** [November 12, 2005, 12:49pm UTC](https://www.ruby-forum.com/t/get-url-uri-process/99934/2 "2005-11-12T12:49:24Z")

</div>

perhaps:

require ‘open-uri’  
open( url ).readlines.join

OR

# Get a web page from a specified URL

def get(url)  
@uri = URI.parse(url)  
open(url) {|result| @body = result.read }  
end

OR

require ‘htree’  
require ‘rexml/document’  
require ‘open-uri’

def read\_xhtml\_from( uri )  
open( uri ) { |f| HTree.parse f }.each\_child do |child|  
if child.respond\_to? :qualified\_name  
doc = “”; child.display\_xml( doc )  
if child.qualified\_name == ‘html’  
return REXML::Document.new( doc )  
end  
end  
end  
end

Okay, so. How to use it? That nice REXML way you?re already used to.

html = read\_xhtml\_from “[http://redhanded.hobix.com/](http://redhanded.hobix.com/)”  
html.each\_element( “//div[@class=‘entryFooter’]” ) do |e|  
puts e.text( “./a[starts-with(@href,  
‘[http://redhanded.hobix.com/](http://redhanded.hobix.com/)’)]” )  
end  
[[http://redhanded.hobix.com/inspect/noXpathOnMessyHtmlIsJustAsEasyInRuby.html](http://redhanded.hobix.com/inspect/noXpathOnMessyHtmlIsJustAsEasyInRuby.html)]

---

<div class="post-metadata">

**Author:** ![dylans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/90ced4/32.png) [@dylans](https://www.ruby-forum.com/u/dylans)\
**Post date:** [November 12, 2005, 12:49pm UTC](https://www.ruby-forum.com/t/get-url-uri-process/99934/3 "2005-11-12T12:49:25Z")

</div>

On 11/9/05, Dylan S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I’m looking for Class or Method that will pass back a document when given a  
> URL.  
> I looked into the URI:: Class, but couldn’t find any examples of it’s use.

[http://rio.rubyforge.org/](http://rio.rubyforge.org/)

rio(‘[http://www.asdf.com/asdf.do?sdf=asdf](http://www.asdf.com/asdf.do?sdf=asdf)’) \>  
rio(‘new\_or\_existing\_file.xml’)

---

<div class="post-metadata">

**Author:** ![dylans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/90ced4/32.png) [@dylans](https://www.ruby-forum.com/u/dylans)\
**Post date:** [November 12, 2005, 12:49pm UTC](https://www.ruby-forum.com/t/get-url-uri-process/99934/4 "2005-11-12T12:49:26Z")

</div>

You guys rock. Thank you very much !
