2008-11-14 8 views
1

Je veux des fichiers source XML légèrement 'dynamiques'. Je veux que certaines valeurs d'éléments soient dynamiques ou "extensibles".Extension de variable à partir de/dans le fichier source (XML) dans Ruby

Je fournis une valeur pour cette variable, à partir d'une autre source.

@Name = 'freezingkiwis' 

Ce que je veux offrir est quelque chose comme ceci dans un fichier XML:

<?xml version="1.0" encoding="UTF-8"?> 
<Contact> 
    <Name>#{@Name}</Name> 
    <Addresses /> 
    <Phones /> 
</Contact> 

Lors de l'ouverture/lecture du fichier (probablement File.new ou File.read) Je veux ensuite « étendre 'la variable @Name, définie précédemment.

Y at-il quelque chose qui va le faire immédiatement pour moi, ou vais-je devoir analyser ce XML (peut-être maintenant comme un document REXML :: Document) et le faire manuellement moi-même?

(à savoir remplacer éventuellement la valeur de l'élément avec cette ...)

J

Répondre

2

Considérons en utilisant ERB, un moteur de modèle Ruby utilisé par exemple dans des rails. Ensuite, vous pouvez écrire n'importe quel code Ruby, y compris la substitution de variables, entre les balises <% %>. D'un autre côté, n'utilisez pas cette solution si le modèle XML lui-même est modifiable par les utilisateurs - cela entraînera une grave faille de sécurité.

+0

ERB était exactement ce que je recherchais, je ne l'avais tout simplement pas découvert à l'époque. Tout au long de ces jours. –

Questions connexes