Aller au contenu

transformer un fichier xml en page htlm


Sujets conseillés

Posté

Bonjour,

J'aimerai à partir d'un fichier sitemap.xml , destiné au départ à google, créer un plan de site en htlm .

Je pense qu'il faut un fichier xls mais je ne sais pas quoi y mettre dedans :blink:

Si quelqu'un à une idée je suis preneur.

Merci d'avance

Posté

Salut :)

Si tu as PHP 5 d'installé, tu peux utiliser ceci: (copié sur PHPTeam)

Fichier XML
<?xml version="1.0"?>
<population>
    <individu>
        <prenom>nicolas</prenom>
        <nom>sulpice</nom>
        <email>test_AT_phpteam.net</email>
    </individu>
    <individu>
        <prenom>georges</prenom>
        <nom>pierre</nom>
        <email>gp_AT_photo.net</email>
    </individu>
</population>

Avec PHP5 pour l'interpreter il suffira de faire :

<?php
$population = simplexml_load_file('individu.xml');

foreach($population->individu as $individu) {
   echo 'Prénom : ' ,$individu->prenom.'<br />';
   echo 'Nom : ' ,$individu->nom.'<br />';
   echo 'Email : ' , $individu->email.'<br /><br />';  
}
?>

Prénom : nicolas

Nom : sulpice

Email : test_AT_phpteam.net

Prénom : georges

Nom : pierre

Email : gp_AT_photo.net

Bonne chance ;)

Posté

Sinon, tu trouveras quantité de parser xml sur le net. Ils te permettent, comme la fonction de php5, de récupérer le contenu de ton fichier dans un tableau pour l'afficher plus facilement.

Posté

Merci à tous pour vos réponses , je vais suivre vos conseils mais je suis pas sûr que ça marche car ma version php est la 4.4.1 :angry:

Bonne journée :)

Posté

Bonjour Jda,

Je ne sais pas si tu veux utiliser ton flux xml de sitemap pour le soumettre aux moteurs et améliorer ta visibilité moteur. Si c'est le cas je te conseil plutôt de faire comme te l'a conseiller Anonymus.

Utilise un parseur php via librairie expat (http://fr2.php.net/xml) valable avec ta version de PHP.

Cela te permettra de pouvoir attribuer des tags html sur les parties que tu souhaites mettre en avant :

les rubriques : h2

les ss rubriques : h3

du bold sur les liens etc...

Bon courage

  • 9 months later...
Posté

salut,

comme j'ai bien galéré à trouver la reponse exact que je cherchais, je te met le code complet (attention à le personnaliser)

il te faut créer un fichier le_nom_que tu veux.xsl contenant le code :

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:sitemap="http://www.google.com/schemas/sitemap/0.84" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html" version="1.0" encoding="iso-8859-1" indent="yes"/>

<!-- Root template -->
<xsl:template match="/">
<html>
<head>
<title>Plan du site - Sitemap</title>
<link href="http://www.google.com/webmasters/sitemaps/docs/sitemaps.css" type="text/css" rel="stylesheet"/>
<style type="text/css">
<![CDATA[
<!--
h1 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size:1.2em;
margin:0.5em;
}
h1 span {
margin-left:0.5em;
}
h1 a:link, h1 a:active{
color:#0081B3;
text-decoration:none;
}
h1 a:hover, h1 a:visited{
color:#FF0000;
text-decoration:underline;
}
p {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size:1em;
margin:0.5em;
}
p span {
margin-left:2em;
}
.header {
background: #F2F2F2;
cursor: pointer;
}
.sortup {
background: right center url(http://www.google.com/webmasters/sitemaps/images/sortup.gif) no-repeat;
font-style:italic;
color: red;
}
.sortdown {
background: right center url(http://www.google.com/webmasters/sitemaps/images/sortdown.gif) no-repeat;
font-style:italic;
color: red;
}
#liens {
width:100%;
margin-top:1em;
text-align:center;
vertical-align:top;
}
-->
]]>
</style>
<link href="gss.css" type="text/css" rel="stylesheet"/>
<script language="JavaScript">
<![CDATA[
var selectedColor = "#FF9901";
var defaultColor = "#000";
var hdrRows = 1;
var numeric = '..';
var desc = '..';
var html = '..';
var freq = '..';

function initXsl(tabName,fileType) {
hdrRows = 1;

if(fileType=="sitemap") {
numeric = ".3.";
desc = ".1.";
html = ".0.";
freq = ".2.";
initTable(tabName);
setSort(tabName, 3, 1);
}
else {
desc = ".1.";
html = ".0.";
initTable(tabName);
setSort(tabName, 1, 1);
}

var theURL = document.getElementById("head1");
theURL.innerHTML += ' ' + location;
document.title += ': ' + location;
}

function initTable(tabName) {
var theTab = document.getElementById(tabName);
for(r=0;r<hdrRows;r++)
for(c=0;c<theTab.rows[r].cells.length;c++)
if((r+theTab.rows[r].cells[c].rowSpan)>hdrRows)
hdrRows=r+theTab.rows[r].cells[c].rowSpan;
for(r=0;r<hdrRows; r++){
colNum = 0;
for(c=0;c<theTab.rows[r].cells.length;c++, colNum++){
if(theTab.rows[r].cells[c].colSpan<2){
theCell = theTab.rows[r].cells[c];
rTitle = theCell.innerHTML.replace(/<[^>]+>| /g,'');
if(rTitle>""){
theCell.title = "Changer l'ordre de " + rTitle;
theCell.onmouseover = function(){setCursor(this, "selected")};
theCell.onmouseout = function(){setCursor(this, "default")};
var sortParams = 15; // bitmapped: numeric|desc|html|freq
if(numeric.indexOf("."+colNum+".")>-1) sortParams -= 1;
if(desc.indexOf("."+colNum+".")>-1) sortParams -= 2;
if(html.indexOf("."+colNum+".")>-1) sortParams -= 4;
if(freq.indexOf("."+colNum+".")>-1) sortParams -= 8;
theCell.onclick = new Function("sortTable(this,"+(colNum+r)+","+hdrRows+","+sortParams+")");
}
} else {
colNum = colNum+theTab.rows[r].cells[c].colSpan-1;
}
}
}
}

function setSort(tabName, colNum, sortDir) {
var theTab = document.getElementById(tabName);
theTab.rows[0].sCol = colNum;
theTab.rows[0].sDir = sortDir;
if (sortDir)
theTab.rows[0].cells[colNum].className='sortdown'
else
theTab.rows[0].cells[colNum].className='sortup';
}

function setCursor(theCell, mode){
rTitle = theCell.innerHTML.replace(/<[^>]+>| |\W/g,'');
if(mode=="selected"){
if(theCell.style.color!=selectedColor)
defaultColor = theCell.style.color;
theCell.style.color = selectedColor;
theCell.style.cursor = "hand";
window.status = "Cliquer la sorte par '"+rTitle+"'";
} else {
theCell.style.color = defaultColor;
theCell.style.cursor = "";
window.status = "";
}
}

function sortTable(theCell, colNum, hdrRows, sortParams){
var typnum = !(sortParams & 1);
sDir = !(sortParams & 2);
var typhtml = !(sortParams & 4);
var typfreq = !(sortParams & 8);
var tBody = theCell.parentNode;
while(tBody.nodeName!="TBODY"){
tBody = tBody.parentNode;
}
var tabOrd = new Array();
if(tBody.rows[0].sCol==colNum) sDir = !tBody.rows[0].sDir;
if (tBody.rows[0].sCol>=0)
tBody.rows[0].cells[tBody.rows[0].sCol].className='';
tBody.rows[0].sCol = colNum;
tBody.rows[0].sDir = sDir;
if (sDir)
tBody.rows[0].cells[colNum].className='sortdown'
else
tBody.rows[0].cells[colNum].className='sortup';
for(i=0,r=hdrRows;r<tBody.rows.length;i++,r++){
colCont = tBody.rows[r].cells[colNum].innerHTML;
if(typhtml) colCont = colCont.replace(/<[^>]+>/g,'');
if(typnum) {
colCont*=1;
if(isNaN(colCont)) colCont = 0;
}
if(typfreq) {
switch(colCont.toLowerCase()) {
case "always": { colCont=0; break; }
case "hourly": { colCont=1; break; }
case "daily": { colCont=2; break; }
case "weekly": { colCont=3; break; }
case "monthly": { colCont=4; break; }
case "yearly": { colCont=5; break; }
case "never": { colCont=6; break; }
}
}
tabOrd[i] = [r, tBody.rows[r], colCont];
}
tabOrd.sort(compRows);
for(i=0,r=hdrRows;r<tBody.rows.length;i++,r++){
tBody.insertBefore(tabOrd[i][1],tBody.rows[r]);
}
window.status = "";
}

function compRows(a, {
if(sDir){
if(a[2]>b[2]) return -1;
if(a[2]<b[2]) return 1;
} else {
if(a[2]>b[2]) return 1;
if(a[2]<b[2]) return -1;
}
return 0;
}

]]>
</script>

</head>

<!-- Store in $fileType if we are in a sitemap -->
<xsl:variable name="fileType">
<xsl:choose>
<xsl:when test="//sitemap:url">sitemap</xsl:when>
</xsl:choose>
</xsl:variable>

<!-- Body -->
<body onLoad="initXsl('table0','{$fileType}');">

<!-- Intro et lien RMC -->
<h1><a title="Création de site internet,référencement de sites Internet, agence de référencement" href="http://www.netgenez.com/">Création de sites Internet</a><span>NetGenez.com</span></h1>

<!-- Textes des tableaux -->
<xsl:choose>
<xsl:when test="$fileType='sitemap'"><xsl:call-template name="sitemapTable"/></xsl:when>
</xsl:choose>

<!-- Liens bas de page -->
<div id="liens">
<a href="http://www.netgenez.com/">Création de site internet</a> - <a href="http://www.shaza.fr">Réussissez votre référencement- Annuaires de liens en dur</a> - <a href="http://www.shaza.fr/tutos/">Comment ça marche?</a>
</div>
</body>
</html>
</xsl:template>

<!-- Tableau du sitemap -->
<xsl:template name="sitemapTable">
<p><strong>Cliquez dans les entêtes gris du tableau pour changer l'affichage des données.</strong><span>Nombres d'url dans ce sitemap : <xsl:value-of select="count(sitemap:urlset/sitemap:url)"/></span></p>

<table border="1" width="100%" class="data" id="table0">
<tr class="header">
<td>Sitemap URL</td>
<td>Date de modification</td>
<td>Fréquence</td>
<td>Priorité</td>
</tr>
<xsl:apply-templates select="sitemap:urlset/sitemap:url">
<xsl:sort select="sitemap:priority" order="descending"/>
</xsl:apply-templates>
</table>
</xsl:template>

<!-- sitemap:url template -->
<xsl:template match="sitemap:url">
<tr>
<td>
<xsl:variable name="sitemapURL"><xsl:value-of select="sitemap:loc"/></xsl:variable>
<a href="{$sitemapURL}" target="_blank" ref="nofollow"><xsl:value-of select="$sitemapURL"/></a>
</td>
<td><xsl:value-of select="sitemap:lastmod"/></td>
<td><xsl:value-of select="sitemap:changefreq"/></td>
<td><xsl:value-of select="sitemap:priority"/></td>
</tr>
</xsl:template>

</xsl:stylesheet>

ensuite soit tu fais ton sitemap toi meme comme un grand soit tu vas à cette adresse http://www.xml-sitemaps.com/

dans ton fichier sitemap.xml tu ajoutes à la deuxième ligne :

<?xml-stylesheet type="text/xsl" href="le_chemin_vers/le_nom_que_tu_veux.xsl"?>

et voilà tu pourras voir le résultat sur mon site qui est en construction depuis un moment déja

<modérateur : merci d'utiliser la balise codebox pour les codes (un peu) longs</edit>

  • 7 months later...
Posté

Bonjour à tous,

(c'est mon 1er post sur le site)

Mercie à shaza pour ton code de transformation des sitemap.xml en version lisible.

Grâce à toi, je profite également du code sur mon nouveau site.

Je découvre avec bcp d'intérêts vos posts. Je vais essayer de contribuer également.

A+

Posté

Shaza,

As-tu remarqué?

Quand tu ouvres ton lien (http://www.netgenez.com/sitemap.xml)

=> avec IE, il apparait un msg d'erreur : "... is null or not an object" ?

=> avec Firefox, c'est OK

Avec IE, j'ai le même message d'erreur que toi avec mon sitemap:

http://1game.free.fr/sitemap.xml

Je pense que cela vient des premières lignes de codes (dans le .xml) mais je n'ai pas trouvé un paramétrage qui fonctionne sur les 2 browsers:

<urlset

xmlns=&quot
"'>
"

xmlns:xsi=&quot

xsi:schemaLocation=&quot

[indent

Et vous,

Avez-vous le même problème ou est-ce du à mon PC ?

Avez-vous une idée pour corriger le pb ?

Merci A+

  • 4 months later...
Posté

salut,

le problème c'est q'au lieu de mettre tes liens ds ton sitemap tu remis des fichiers xml...

pour corriger le pn il suffit de suivre les indication que j'ai donné plus haut

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...