xml builder, dynamic methods

Is there a way to do something like:

x = Builder::XmlMarkup.new(:target => $stdout, :indent => 1)
x.instruct!
x.response{
      x.XXXXX{

XXXXX is a variable sent in to a method.

Chris Habgood wrote:

Is there a way to do something like:

x = Builder::XmlMarkup.new(:target => $stdout, :indent => 1)
x.instruct!
x.response{
      x.XXXXX{

XXXXX is a variable sent in to a method.

Can you clarify? I don't understand your question.

x.XXXXX { ... } would create an XML tag named "XXXXX"

<?xml version="1.0"?>
<response>
  <XXXXX>
    ...
  </XXXXX>
</response>

Attributes are added by passing in a hash x.XXXXX(:title => "foo", name
=> "bar") { ... }

<?xml version="1.0"?>
<response>
  <XXXXX title="foo" name="bar">
    ...
  </XXXXX>
</response>

What are you actually trying to do?

Take success or error in as a text and replace the below with:

if type.eql?(‘success’)
x.success do
x.message “#{msg}”
end
else
x.error do

          x.message "#{msg}"
        end
      end

Final version:
remove the duplication.
type = “success” or “error”
x.type do
x.message “”