jda Posté 18 Décembre 2005 Posté 18 Décembre 2005 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 Si quelqu'un à une idée je suis preneur. Merci d'avance
MS-DOS_1991 Posté 18 Décembre 2005 Posté 18 Décembre 2005 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
Anonymus Posté 18 Décembre 2005 Posté 18 Décembre 2005 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.
jda Posté 19 Décembre 2005 Auteur Posté 19 Décembre 2005 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 Bonne journée
ryuran Posté 20 Décembre 2005 Posté 20 Décembre 2005 hum je pense que xslt sera plus adapté à tes besoins http://fr.wikipedia.org/wiki/XSLT
klelugi Posté 20 Décembre 2005 Posté 20 Décembre 2005 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
shaza Posté 13 Octobre 2006 Posté 13 Octobre 2006 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>
Snoozy01 Posté 14 Mai 2007 Posté 14 Mai 2007 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+
Snoozy01 Posté 14 Mai 2007 Posté 14 Mai 2007 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=" ;http://www.google.com/schemas/sitemap/0.84 "'> ;http://www.google.com/schemas/sitemap/0.84 " xmlns:xsi=" ;http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" ;http://www.google.com/schemas/sitemap/0.84 [indent ]http://www.google.com/schemas/sitemap/0.84/sitemap.xsd"> 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+
shaza Posté 20 Septembre 2007 Posté 20 Septembre 2007 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant