XML output

Hi,

Sorry abt the half finished post that I sent out earlier.

The idea is to generate an output xml response as such:

<?xml version="1.0" encoding="ISO-8859-1" ?> Some text Me

I make a request like such

http://localhost:3000/manager/shome_xml?from=Me

The page i get back is blank.

I have a method showme_xml in my controller manager_controller.rb

class ManagerController < ApplicationController
def shome_xml
@from = params[:from]
render :action => “showme_xml”, :layout => nil
end
end

I have got a shome_xml.rxml template in my view section.

xml = Builder::XmlMarkup.new
xml.response(:status => “NOT_AVAILABLE”)
xml.message(“Some text”)
if @from != “none”
@from
end

Am i understanding the use of Builder right? I am new to this and would
love some feedback and/or pointers.

Thanks.

Mufaddal K. wrote:

xml = Builder::XmlMarkup.new
xml.response(:status => “NOT_AVAILABLE”)
xml.message(“Some text”)
if @from != “none”
@from
end

This is almost correct. The following should generate what you are
after:

xml.instruct! :xml, :version=>“1.0”, :encoding => ‘ISO-8859-1’

xml.response(:status => “NOT_AVAILABLE”) {
xml.message(“Some text”)
if @from != “none”
xml.from(@from)
end
}

The XmlMarkup object gets created automatically, so your first line is
unnecessary. To create child nodes under response, you have to use a
block and nest the contents. To get the <?xml ?> directive, use the
xml.instruct! method.


Philip R.
http://tzinfo.rubyforge.org/ – DST-aware timezone library for Ruby

Mufaddal K. wrote:

Thanks . After I got my syntax right it worked. The last question I have
is if there is a way to escape the xml data? one of my xml nodes has a
url. Something like this:

http://myfavouritecartoon.com/manager/view?option=x&water=yes

Is there a way to encode such data in rails so that the xml output is
welformed?

XML text nodes are properly escaped by Builder when you do something
like xml.url(@url).

Note that the version of Builder used by Rails 1.1 and earlier does not
escape attribute values (see http://dev.rubyonrails.org/ticket/3354).
This is fixed in the Rails SVN trunk.


Philip R.
http://tzinfo.rubyforge.org/ – DST-aware timezone library for Ruby

Thanks . After I got my syntax right it worked. The last question I have
is if there is a way to escape the xml data? one of my xml nodes has a
url. Something like this:

http://myfavouritecartoon.com/manager/view?option=x&water=yes

Is there a way to encode such data in rails so that the xml output is
welformed?

Thanks.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs