[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook] mediaobject fileref troubles
[this is more of a docbook-apps@lists.oasis-open.org post, but the original post and question was mainly about the input thus the thread should be appropriate for docbook@lists.oasis-open.org] Hi Patrick, you could also use XSLT 2. If you want to continue to use the current docbook.sf.net XSLTs, you could resolve references to external files in a simple preprocessing step. For example, you could run your sources through something like <xsl:transform version="2.0" xmlns="http://www.w3.org/1999/XSL/Transform"> <template match="node() | @*"> <copy> <apply-templates select="@* | node()" /> </copy> </template> <template match="textdata[@fileref]"> <!-- I'm sure there is a much simpler way --> <variable name="dir_abs" select="replace(base-uri(/),'[^\/]+$','')"/> <!-- AFAICS, basically resolve-uri() concatenates if @fileref is relative, and leaves unchanged if it's absolute --> <variable name="file_abs" select="resolve-uri(@fileref,$dir_abs)"/> <copy-of select="unparsed-text($file_abs,'utf-8')"/> </template> </transform> The template works for me (Saxon 7.5.1), but the whole XSLT has not been run or tested. See an example at http://www.pinkjuice.com/joocs/doc/ (URL will change) (currently last test, #14) Input: http://www.pinkjuice.com/joocs/test/input.dbx <section><title>Inserted File</title> <example><title>Counter</title> <programlisting><textobject><textdata fileref="counter.rb"/></textobject></programlisting> </example> </section> Output: http://www.pinkjuice.com/joocs/test/output.xhtml <div class="section jcs-toplevel"> <h3 class="title">Inserted File</h3> <!-- example not yet fully supported --> <h3 class="title">Counter</h3> <pre><code>1.upto(ARGV[0].to_i) do |i| puts i end </code></pre> </div> Program: http://www.pinkjuice.com/joocs/xslt/ http://www.pinkjuice.com/joocs/xslt/prel_main.xslt (also see above) Tobi -- http://www.pinkjuice.com/
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]