How to transform a cached XML via XSL?
        Posted  
        
            by TruMan1
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by TruMan1
        
        
        
        Published on 2010-05-24T18:32:06Z
        Indexed on 
            2010/05/24
            18:41 UTC
        
        
        Read the original article
        Hit count: 337
        
I have a PHP script that caches a remote XML file. I want to XSL transform it before caching, but don't know how to do this:
<?php
   // Set this to your link Id
   $linkId = "0oiy8Plr697u3puyJy9VTUWfPrCEvEgJR";
   // Set this to a directory that has write permissions
   // for this script
   $cacheDir = "temp/";
   $cachetime = 15 * 60; // 15 minutes
   // Do not change anything below this line
   // unless you are absolutely sure
   $feedUrl="http://mydomain.com/messageService/guestlinkservlet?glId=";
   $cachefile = $cacheDir .$linkId.".xml";
   header('Content-type: text/xml');
   // Send from the cache if $cachetime is not exceeded
   if (file_exists($cachefile) && (time() - $cachetime
      < filemtime($cachefile)))
   {
      include($cachefile);
      echo "<!-- Cached ".date('jS F Y H:i', filemtime($cachefile))." -->\n";
      exit;
   }
   $contents = file_get_contents($feedUrl . $linkId);
   // show the contents of the XML file
   echo $contents;
   // write it to the cache
   $fp = fopen($cachefile, 'w');
   fwrite($fp, $contents);
   fclose($fp);
?>
This is the XSL string I want to use to transform it:
<xsl:template match="/">
    <kml xmlns="http://www.opengis.net/kml/2.2">
        <Document>
            <xsl:apply-templates select="messageList" />
        </Document>
    </kml>
</xsl:template>
<xsl:template match="messageList">
    <name>My Generated KML</name>
    <xsl:apply-templates select="message" />
</xsl:template>
<xsl:template match="message">
    <Placemark>
        <name><xsl:value-of select="esnName" /></name>
        <Point>
            <coordinates>
                <xsl:value-of select="latitude" />,<xsl:value-of select="longitude" />
            </coordinates>
        </Point>
    </Placemark>
</xsl:template>
I want to actually transform XML input and save/return a KML format. Can someone please help adjust this script? This was given to me and I am a little new to it.
© Stack Overflow or respective owner