none
Lecture de flux RRS feed

  • Question

  • Bonjour,

    J'essaye de faire un petit lecteur de flux, et suis parti du tuto disponible à cette page: http://msdn.microsoft.com/fr-fr/library/windows/apps/hh974582.aspx

    Seulement voilà, après avoir mis un autre flux, cela ne fonctionne pas. J'ai lu sur ce forum que cela était du au fait qu'il fallait adapter certaines données, car chaque flux n'est pas forcement construite de la même manière. J'ai donc changé plusieurs choses, mais cela ne fonctionne toujours pas. J'ai l'impression que j'ai mal renseigné les champs.

    Voici le lien du flux:  http://ws.m6web.fr/ws.php?idsite=1&wst=content&wsn=getListNews&type=liste

    Voici les différentes parties du code que j'ai changé, à partir de la fonction getBlogPosts. Avant, j'ai juste changer les liens des flux.


    function getBlogPosts() {
            // Walk the results to retrieve the blog posts
            // Walk the results to retrieve the blog posts
            getFeeds().then(function () {
                // Process each blog
                blogs.forEach(function (feed) {
                    feed.dataPromise.then(function (articlesResponse) {
                        var articleSyndication = articlesResponse.responseXML;
    
                        // Get the blog title
    
                        feed.title = articleSyndication.querySelector("channel > title").textContent;
    
                        // Use the date of the latest post as the last updated date
                        var published = articleSyndication.querySelector("channel > item > date_publication").textContent;
    
                        // Convert the date for display
                         var date = new Date(published);
                        var dateFmt = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter(
                           "month.abbreviated day year.full");
                         var blogDate = dateFmt.format(date);
                        feed.updated = "Last updated " + blogDate;
    
                        // Get the blog posts
                        getItemsFromXml(articleSyndication, blogPosts, feed);
                    });
                });
            });
    
            return blogPosts;
    
        }

    Et là, j'ai dejà une erreur au niveau de var blogDate = dateFmt.format(date) .... Objet date attendu

    Ensuite, si je passe toute la fonction pour convertir la date en commentaire, une autre erreur arrive plus loin.


    function getItemsFromXml(articleSyndication, bPosts, feed) {
            // Get the info for each blog post
    
            // Get the info for each blog post
            var posts = articleSyndication.querySelectorAll("channel > item > chapeau");
    
            // Process each blog post
            for (var postIndex = 0; postIndex < posts.length; postIndex++) {
                var post = posts[postIndex];
    
                // Get the title, author, and date published
                var postTitle = post.querySelector("channel > item > titre").textContent;
                var postAuthor = post.querySelector("channel > item > auteur").textContent;
                var postPublished = post.querySelector("channel > item > date_publication").textContent;
    
                // Convert the date for display
                var postDate = new Date(postPublished);
                var monthFmt = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter(
                    "month.abbreviated");
                var dayFmt = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter(
                    "day");
                var yearFmt = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter(
                    "year.full");
                var blogPostMonth = monthFmt.format(postDate);
                var blogPostDay = dayFmt.format(postDate);
                var blogPostYear = yearFmt.format(postDate);
    
                // Process the content so it displays nicely
                var staticContent = toStaticHTML(post.querySelector("content").textContent);
    
                // Store the post info we care about in the array
                bPosts.push({
                    group: feed,
                    key: feed.title,
                    title: postTitle,
                    author: postAuthor,
                    month: blogPostMonth.toUpperCase(),
                    day: blogPostDay,
                    year: blogPostYear,
                    content: staticContent
                });
            }
    
        }

    Et la, c'est au niveau de var postTitle = post.querySelector("channel > item > titre").textContent qu'il y l'erreur: Impossible d’obtenir la propriété  « textContent » d’une référence null ou non définie. J'ai donc l'impression que mon "chemin" pour accéder aux titres de chaque news est faut, si j'ai bien compris. Comment faire pour que cela fonctionne ?

    Bien cordialement,

    Matthieu






    • Modifié Amys91 mardi 15 janvier 2013 18:16
    mardi 15 janvier 2013 18:10

Réponses

Toutes les réponses