2010-08-24 6 views
4

Est-ce que quelqu'un connaît de bonnes méthodes pour convertir des entrées de base de données en XML?Postgres Data to XML

I.e. si j'ai une table nommée « Utilisateurs » avec des champs « prenom », « l'âge », « last_name », je voudrais convertir la table:

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

Répondre

1

C'est une question indépendante de la DB, il peut être fait avec n'importe quel DB supporté par ActiveRecord.

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

Le :except => [:id,:created_at,:updated_at] supprime les colonnes Rails par défaut de la sortie XML.

Il y a un blog intéressant à ce sujet: http://ryandaigle.com/articles/2007/4/13/what-s-new-in-edge-rails-a-more-flexible-to_xml

+0

Merci pour la réponse rapide Jigfox. Je n'aurais probablement pas dû taguer Rails avec ces questions. Mais que faire si, Rails n'est pas installé dans le système? – Tian

15

Dans PostgreSQL vous pourriez comme ceci:

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

Ou

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

Il y a d'autres options aussi bien, juste vérifiez the manual.

+0

où sera l'emplacement du fichier XML généré? Y a-t-il un chemin par défaut existe? – Haji

+1

@Haji Il n'y a pas d'emplacement de fichier, juste un ensemble de résultats de cette requête. Vous pouvez utiliser COPY pour vider le fichier quelque part, COPY prend le nom du fichier et l'emplacement en tant que paramètre d'entrée. –

+0

Merci pour votre précieuse commande ... – Haji