# XML builder

**URL:** <https://www.ruby-forum.com/t/xml-builder/192001>\
**Category:** Rails\
**Created:** [July 22, 2010, 9:03am UTC](https://www.ruby-forum.com/t/xml-builder/192001 "2010-07-22T09:03:14Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![brandon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f08c70/32.png) [@brandon](https://www.ruby-forum.com/u/brandon)\
**Post date:** [July 22, 2010, 9:03am UTC](https://www.ruby-forum.com/t/xml-builder/192001/1 "2010-07-22T09:03:14Z")

</div>

I am using the XML builder and I am frustrated by the lack of being  
able to use variables to define the names of XML elements

I want to be able to do this (in actionname.xml.builder)  
…  
element\_name = “Tag”  
xml.element\_name(“Brandon”)  
…

ACTUAL OUTPUT  
…  
\<element\_name\>Brandon\</element\_name\>  
…

DESIRED OUTPUT  
…  
Brandon  
…

Does anyone know how I could achieve the desired output using only the  
xml builder?

---

<div class="post-metadata">

**Author:** ![brandon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f08c70/32.png) [@brandon](https://www.ruby-forum.com/u/brandon)\
**Post date:** [July 22, 2010, 9:07am UTC](https://www.ruby-forum.com/t/xml-builder/192001/2 "2010-07-22T09:07:55Z")

</div>

On Jul 21, 10:26 pm, Brandon [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> DESIRED OUTPUT  
> …  
> Brandon  
> …
> 
> Does anyone know how I could achieve the desired output using only the  
> xml builder?

have a look at the tag! method

Fred

---

<div class="post-metadata">

**Author:** ![brandon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f08c70/32.png) [@brandon](https://www.ruby-forum.com/u/brandon)\
**Post date:** [July 22, 2010, 3:32pm UTC](https://www.ruby-forum.com/t/xml-builder/192001/3 "2010-07-22T15:32:03Z")

</div>

try

xml.instruct!  
xml.data do  
xml.tag “Brandon”  
end

this will give you:

 Brandon

Cheers

---

<div class="post-metadata">

**Author:** ![brandon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f08c70/32.png) [@brandon](https://www.ruby-forum.com/u/brandon)\
**Post date:** [July 22, 2010, 6:07pm UTC](https://www.ruby-forum.com/t/xml-builder/192001/4 "2010-07-22T18:07:13Z")

</div>

LOL, much easy, i think so 😃 Happy coding.

On Thu, Jul 22, 2010 at 8:30 AM, Ajit [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Brandon
> 
> > I want to be able to do this (in actionname.xml.builder)  
> > DESIRED OUTPUT  
> > To post to this group, send email to removed\_email\_address@domain.invalid.  
> > To unsubscribe from this group, send email to  
> > removed\_email\_address@domain.invalid[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> > .  
> > For more options, visit this group at  
> > [http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).

–  
Atte. ISC. Gerardo GonzÃ¡lez Cruz

---

<div class="post-metadata">

**Author:** ![brandon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f08c70/32.png) [@brandon](https://www.ruby-forum.com/u/brandon)\
**Post date:** [September 8, 2010, 12:21pm UTC](https://www.ruby-forum.com/t/xml-builder/192001/5 "2010-09-08T12:21:20Z")

</div>

bensomers wrote:

> Try using “send” to send the element name. So
> 
> element\_name = :tag  
> xml.send(element\_name) “Brandon”

thanx for your help. It was really helpful

how can I add attribute. I want in this format

214

how can I add attribute date.

---

<div class="post-metadata">

**Author:** ![brandon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f08c70/32.png) [@brandon](https://www.ruby-forum.com/u/brandon)\
**Post date:** [September 8, 2010, 5:44pm UTC](https://www.ruby-forum.com/t/xml-builder/192001/6 "2010-09-08T17:44:09Z")

</div>

xml.count(:date=\>service.date, service.code)

```
   ^ ^ ^

```

dot tag hash = attribute no hash = inner value

---

<div class="post-metadata">

**Author:** ![brandon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/f08c70/32.png) [@brandon](https://www.ruby-forum.com/u/brandon)\
**Post date:** [July 23, 2010, 9:19am UTC](https://www.ruby-forum.com/t/xml-builder/192001/7 "2010-07-23T09:19:49Z")

</div>

Try using “send” to send the element name. So

element\_name = :tag  
xml.send(element\_name) “Brandon”
