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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
| <!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<!-- cache-control avec max-age=60 pour le développement uniquement -->
<meta http-equiv="cache-control" content="public, max-age=60">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<meta name="author" content="Daniel Hagnoul">
<title>test</title>
<style>
*,
*:after,
*:before {
box-sizing: border-box;
}
/* CSS du test */
/* Fin CSS du test */
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/locale/fr.js"></script>
<script src="http://danielhagnoul.developpez.com/lib/dvjh/dvjhUtilities-1.4.0.js"></script>
<script>
'use strict';
document.addEventListener( "DOMContentLoaded", ev => {
// le DOM est construit, la page web n'est pas visible
moment.locale( "fr" );
klog( `DOM ready : ${ new kDvjhDate() }` );
// code du test
// fin code du test
}, false );
window.addEventListener( "load", ev => {
// le DOM est construit et la page web est visible
klog( `Window load : ${ new kDvjhDate() }` );
// code du test
let
arArticles = [];
class Article {
constructor( title, link, description, pubDate, enclosureURL, guid ){
Object.assign( this, { title, link, description, pubDate, enclosureURL, guid } );
}
toString(){
let str = "";
str += "Titre : " + this.title + "\n";
str += "Description : " + this.description + "\n";
str += "Url : " + this.link;
return str;
}
toHTML(){
let str = "";
str += "<p>Titre : " + this.title + "</p>";
str += "<p>Description : " + this.description + "<a href=" + this.link + ">Voir l'article</p>";
return str;
}
}
function getArticleInfos() {
const
xhr = new XMLHttpRequest();
// attention à la structure du xml https://www.lequipe.fr/rss/actu_rss_Football.xml
/*
* <?xml version="1.0" encoding="UTF-8" ?>
* <rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom">
* <channel>
* <atom:link href='https://www.lequipe.fr/rss/actu_rss_Football.xml' rel='self' type='application/rss+xml' />
<title>L'Equipe.fr Actu Football</title>
<link>https://www.lequipe.fr</link>
<description>L'Equipe.fr, Toute l'actualité du football</description>
<language>fr</language>
<copyright>Copyright L'Equipe.fr</copyright>
<pubDate>Sat, 21 Oct 2017 22:31:22 +0200</pubDate>
<image>
<url>http://www.lequipe.fr/rss/logo_RSS.gif</url>
<title>L'Equipe.fr Actu Football</title>
<link>https://www.lequipe.fr</link>
<width>119</width>
<height>28</height>
</image>
<item>
<title>Foot - L1 - Monaco - Radamel Falcao (attaquant de l'AS Monaco) : «Rester fort mentalement»</title>
<link>https://www.lequipe.fr/Football/Actualites/Radamel-falcao-monaco-rester-fort-mentalement/844365#xtor=RSS-1</link>
<description>Radamel Falcao a apprécié la belle réaction monégasque après quatre... </description>
<pubDate>Sat, 21 Oct 2017 22:21:00 +0200</pubDate>
<guid>https://www.lequipe.fr/Football/Actualites/Radamel-falcao-monaco-rester-fort-mentalement/844365#xtor=RSS-1</guid>
</item>
<item>
<title>Foot - L1 - Monaco - Keita Baldé (attaquant de l'AS Monaco) : «Une bonne connexion avec Falcao»</title>
<link>https://www.lequipe.fr/Football/Actualites/Keita-balde-attaquant-de-l-as-monaco-une-bonne-connexion-avec-falcao/844362#xtor=RSS-1</link>
<description>Keita Baldé a ouvert le score pour Monaco samedi face à Caen (2-0).... </description>
<pubDate>Sat, 21 Oct 2017 22:18:00 +0200</pubDate>
<guid>https://www.lequipe.fr/Football/Actualites/Keita-balde-attaquant-de-l-as-monaco-une-bonne-connexion-avec-falcao/844362#xtor=RSS-1</guid>
</item>
<item>
<title>Foot - L1 - Metz - Philippe Hinschberger : «Dangereux pour le club»</title>
<link>https://www.lequipe.fr/Football/Actualites/Philippe-hinschberger-dangereux-pour-le-club/844360#xtor=RSS-1</link>
<description>Sur la sellette, l'entraîneur du FC Metz s'est montré fataliste après... </description>
<pubDate>Sat, 21 Oct 2017 22:15:00 +0200</pubDate>
<enclosure url="https://medias.lequipe.fr/img-photo-jpg/hinschberger/1500000000847524/1468:104,2186:582-665-335-70/d64a5.jpg" length="50000" type="image/jpeg"/>
<guid>https://www.lequipe.fr/Football/Actualites/Philippe-hinschberger-dangereux-pour-le-club/844360#xtor=RSS-1</guid>
</item>
...
</channel>
</rss>
*/
xhr.open( 'GET', 'https://www.lequipe.fr/rss/actu_rss_Football.xml', true );
xhr.onload = function() {
const
doc = xhr.responseXML,
items = Array.from( doc.querySelectorAll( "item" ) );
for ( const item of items ){
let
ObjArticle = new Article(
item.querySelector( "title" ).textContent,
item.querySelector( "link" ).textContent,
item.querySelector( "description" ).textContent,
item.querySelector( "pubDate" ).textContent,
( ( item.querySelector( "enclosure" ) != null ) ? item.querySelector( "enclosure" ).getAttribute( "url" ) : "vide" ),
item.querySelector( "guid" ).textContent
);
arArticles.push( ObjArticle );
}
const
elemMain = document.querySelector( "main" ),
elemArticle = document.createElement( "article");
for ( const obj of arArticles ){
let article = elemArticle.cloneNode();
article.innerHTML = obj.toHTML();
elemMain.appendChild( article );
}
};
xhr.send( null );
}
getArticleInfos();
// fin code du test
kIDUnique();
}, false );
</script>
</head>
<body>
<main>
</main>
</body>
</html> |
Partager