[libvirt] Generating our docs/search.php with xsltproc

Daniel Veillard veillard at redhat.com
Thu Aug 2 10:45:26 UTC 2012


On Wed, Aug 01, 2012 at 06:19:46PM +0200, Martin Kletzander wrote:
> Hi everyone.

  Re,

> TL;DR is there a way to keep PHP code untouched in XSL transformed XML?

  I guess that you need a dose of "disable-output-escaping"
  http://www.w3.org/TR/xslt#disable-output-escaping
so basically you import the PHP in text node untouched one way or
anover (double escape of input or XInclude of text part [1])
and then output those fragments with
  <xsl:text disable-output-escaping="yes">
    your PHP code ...
  </xsl:text>

> For a while now, I'm trying to make our 'search.php' file generated like
> all the '*.html' files (with all the fancy stuff like up-to-date menu,
> headers and so on).
> 
> The problem I've been facing looks like an easy and doable thing /at
> first/, but every normal approach I tried didn't work. I'm most probably
> doing something wrong. I haven't used XSLT that much and this is very
> badly google-able topic as lots of people are using XSL transformation
> *inside* PHP and mangling the search results in their benefit.
> I tried:
>  - using CDATA
>  - transforming the code with various elements
>  - turning off output escaping
>  - putting the code into another element
>  - various combinations of previous things
>  - and few others

  Nice try, you looked in nearly all directions ;-)

> Now it looks like the only option is to put the code part into another
> file and inject it after the transformation, which is ugly, because it
> means lots of modification (and unnecessary lines of code) for one file
> (even though it would be applicable for all /possible/ future scripts).
> 
> I know this is not the best place to ask this question, but since we
> have the web page generator using XSLT *and* it is for libvirt's
> benefit, someone on the list might help me.

  One solution might be to XInclude [1] as text the php in the XML data,
and use HTML serialization of the XSLT output [2], but that still looks
error prone.
  To be honnest i would not bother too much about making the output
  generated by XSLT directly, concatenation at the shell/python/perl
would be just as good IMHO as long as we don't need to fix it too often :-)

Daniel

[1] http://www.w3.org/TR/xinclude/
[2] http://www.w3.org/TR/xslt#output

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list