2008-09-26 7 views
0

Je souhaite attacher une feuille de style xslt à un document XML que je construis avec XMLBuilder. Cela se fait avec une instruction de traitement qui ressembleCréation de PI xml-stylesheet avec Rails XMLBuilder

<?xml-stylesheet type='text/xsl' href='/stylesheets/style.xslt' ?> 

Normalement, j'utiliser la méthode instruct!, mais :xml-stylesheet est pas un symbole Ruby valide.

XMLBuilder a une solution pour ce cas pour les éléments utilisant la méthode tag!, mais je ne vois pas l'équivalent pour les instructions de traitement.

Des idées?

Répondre

2

Je ne suis pas sûr que cela va résoudre votre problème puisque je ne connais pas l'instruction! méthode de cet objet, mais: 'xml-stylesheet' est un symbole ruby ​​valide.

+0

duh qui était facile :) Merci toi! – ykaganovich

4

vous le faites comme ceci:

xm.instruct! 'xml-stylesheet', {:href=>'/stylesheets/style.xslt', :type=>'text/xsl'} 

Il suffit d'ajouter cette ligne droite après

xm.instruct! :xml, {:encoding=>"your_encoding_type"} 

et avant le reste de votre document code de sortie et vous devriez être bon d'aller.

0

Si vous utilisez l'assistant atom_feed, vous pouvez passer cela dans l'option instruct:

atom_feed(instruct: { 
    'xml-stylesheet' => {type: 'text/xsl', href: 'styles.xml'} 
    }) do |feed| 
    feed.title "My Atom Feed" 
    # entries... 
end 

qui en résulte (montrant seulement 3 premières lignes):

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="styles.xml"?> 
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">