我无法弄清楚如何获得渲染集合(作为XML)以包含样式表行,例如:
<?xml-stylesheet type="text/xsl" href="example.xsl" ?>
This guy说要添加一个proc:
proc = Proc.new { |options| options[:builder].instruct!(:xml-stylesheet, type=>'text/xsl', :href=>'something.xsl') }
@foo.to_xml :procs => [proc]
但我无法让它发挥作用。有什么建议吗?
答案 0 :(得分:2)
看看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)
答案 1 :(得分:0)
您可以使用Rails附带的atom_feed
帮助程序:
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'