使用Rails XMLBuilder创建xml-stylesheet PI

时间:2008-09-26 21:18:17

标签: ruby-on-rails xml ruby

我想将xslt样式表附加到我使用XMLBuilder构建的XML文档中。这是通过看起来像

的处理指令完成的
<?xml-stylesheet type='text/xsl' href='/stylesheets/style.xslt' ?>

通常,我会使用instruct!方法,但:xml-stylesheet不是有效的Ruby符号。

对于使用tag!方法的元素,XMLBuilder有这种情况的解决方案,但我没有看到处理指令的等价物。

有什么想法吗?

3 个答案:

答案 0 :(得分:5)

你这样做:

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

只需在

之后添加该行即可
xm.instruct! :xml, {:encoding=>"your_encoding_type"}

在你的其他文档输出代码之前,你应该好好去。

答案 1 :(得分:2)

我不确定这会解决你的问题,因为我不知道这个指示!该对象的方法,但是:'xml-stylesheet'是有效的ruby符号。

答案 2 :(得分:0)

如果使用atom_feed帮助器,您可以在instruct选项中传递此信息:

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