Alors voila j'ai enfin réussi a faire mon tri.
Voila mon code XML :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
<?xml version="1.0"?>
<urlset>
<url>
<loc>http://www.liens1.fr</loc>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://www.liens2.fr</loc>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>http://www.liens3.fr</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.liens4.fr</loc>
<changefreq>weekly</changefreq>
<priority>0.2</priority>
</url>
</urlset> |
Mon code XSL :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="utf-8"/>
<!-- Copie de tous les noeuds et attributs -->
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<!-- chaque url sera recréé avec tous ces noeuds enfants et attributs -->
<xsl:template match="url">
<url>
<xsl:apply-templates/>
</url>
</xsl:template>
<!-- On recréé le xml en triant les urls par la valeur de leur enfant priority -->
<xsl:template match="/urlset">
<urlset>
<xsl:apply-templates select="url">
<xsl:sort select="priority" order="descending" data-type="number"/>
</xsl:apply-templates>
</urlset>
</xsl:template>
</xsl:stylesheet> |
et Mon code PHP :
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<?php
$moteurXslt = new XSLTProcessor();
$style = new DOMDocument();
$style->load('tri.xsl');
$moteurXslt->importStylesheet($style);
$source = new DOMDocument();
$source->load('sitemap.xml');
print $moteurXslt->transformToUri($source, 'resultat.xml');
?> |
Voila donc si peu aider quelqu'un d'autre j'ai repris le code xsl sur le forum ![:D](https://www.developpez.net/forums/images/smilies/icon_biggrin.gif)
Par contre lorsque je rajoute un espace de nom de type :
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
à ma balise urlset le tri ne fonctionne pas comment faire pour prendre en compte les attributs?
Partager