21 novembre 2008 06:20

Le tri des déchets pour les geeks

By Gordontesos - cet homme est fou, développement
<?php

$sourceXML = <<<EOT
<?xml version="1.0" encoding="UTF-8" ?>
<trash>
    <waste type="glass" />
    <waste type="paper" />
    <waste type="organic" />
    <waste type="paper" />
    <waste type="glass" />
    <waste type="paper" />
</trash>
EOT;

$sheetXML = <<<EOT
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output indent="yes" method="xml" encoding="UTF-8"/>
    <xsl:template match="/">
        <xsl:apply-templates select="trash" />
    </xsl:template>
    <xsl:template match="trash">
        <trash>
            <xsl:apply-templates select="waste">
                <xsl:sort select="@type" data-type="text" />
            </xsl:apply-templates>
        </trash>
    </xsl:template>
    <xsl:template match="waste">
        <waste>
            <xsl:attribute name="type">
                <xsl:value-of select="@type" />
            </xsl:attribute>
        </waste>
    </xsl:template>
</xsl:stylesheet>
EOT;

$sourceDoc =new DOMDocument();
$sourceDoc->loadXML($sourceXML);

$sheetDoc =new DOMDocument();
$sheetDoc->loadXML($sheetXML);

$proc = new XSLTProcessor();
$proc->importStyleSheet($sheetDoc);

$resultDoc = $proc->transformToDoc($sourceDoc);
$resultDoc->formatOutput = TRUE;

echo $resultDoc->saveXML();

?>

OUI je sais, j’ai déjà publié ça sur Facebook. Mais je pense que ça a plus sa place ici, tout compte fait. Et puis Facebook indexe mon flux RSS, donc ça revient au même.² Ceci dit, il est bien plus agréable de trier les déchets que les dates, croyez-moi.

No Comments yet »

Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.

« | »