11

Does anyone know any good methods for converting database entries into XML?

I.e. if i have a table named "Users" with fields "first_name", "age", "last_name", I'd like to convert the table to:

<Users>
  <first_name>Papa</first_name>
  <age>50</age>
  <last_name>John</last_name>
</Users>

2 Answers 2

26

In PostgreSQL you could it like this:

SELECT table_to_xml('users', true, false, '');

Or

SELECT query_to_xml('SELECT * FROM users', true, false, '');

There are other options as well, just check the manual.

Sign up to request clarification or add additional context in comments.

5 Comments

where will be the generated xml file location? Is there any default path exists?
@Haji There is no file location, just a result set from this query. You could use COPY to dump the file somewhere, COPY takes the filename and location as an input parameter.
Hi, it's been a while but what does do true,false,'' ? Also when I COPY this output, there are a lot of \n chars. How can I remove these \n chars?
Can you also do query_to_xml on a CTE?
To use xml feature in postgres, Postgres server must be first compiled with libxml library.
1

This is a question independent of the DB it can be done with any DB supported by ActiveRecord.

User.find(some_id).to_xml(:except => [:id,:created_at,:updated_at])

The :except => [:id,:created_at,:updated_at] removes the Rails default columns from the XML output.

There is an interesting blog post about this matter: http://ryandaigle.com/articles/2007/4/13/what-s-new-in-edge-rails-a-more-flexible-to_xml

1 Comment

Thanks for the quick answer Jigfox. I probably shouldn't have tagged Rails with this questions. But what if, Rails isn't installed in the system?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.