Рендеринг XML с помощью таблицы стилей в Rails - PullRequest
0 голосов
/ 24 февраля 2012

Я не могу понять, как получить отрендеренную коллекцию (в виде XML), включающую строку таблицы стилей, такую ​​как:

<?xml-stylesheet type="text/xsl" href="example.xsl" ?>

Этот парень говорит добавить процедурукак таковой:

proc = Proc.new { |options| options[:builder].instruct!(:xml-stylesheet, type=>'text/xsl', :href=>'something.xsl') }
@foo.to_xml :procs => [proc]

Но я не могу заставить это работать.Есть предложения?

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

Взгляните на самоцвет Nokogiri: http://nokogiri.org/Nokogiri/XSLT/Stylesheet.html

doc   = Nokogiri::XML(File.read('some_file.xml'))
xslt  = Nokogiri::XSLT(File.read('some_transformer.xslt'))

puts xslt.transform(doc)
0 голосов
/ 30 октября 2014

Вы можете использовать помощник atom_feed, который входит в состав Rails:

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

В результате (отображаются только первые 3 строки):

<?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">

Или, если не визуализировать atom_feed, вы можете просто использовать instruct внутри вашего компоновщика:

xml.instruct! 'xml-stylesheet', href: 'style.xml', type: 'text/xsl'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...