none
Impossible d'importer un FLUX RSS RRS feed

  • Question

  • Hello, je suis debutant et je commence avec ma premiere application Metro.

    J'ai suivis ce tutoriel : http://msdn.microsoft.com/fr-FR/library/windows/apps/br211385.aspx mais a chaque fois que j'introduit mon flux RSS il m'indique que à cette ligne il y a une erreur :

    // Get the blog title
    feed.title = articleSyndication.selectSingleNode("/feed/title").text;

    Voici le lien du flux :

    http://microsoftmag.eu/rss.xml

    Merci de votre aide

    Jeremy
    From Spain

    • Déplacé Florin Ciuca vendredi 7 septembre 2012 10:08 (Origine :Développement d’applications de style Metro pour Windows 8)
    mardi 6 mars 2012 16:06

Réponses

  • Bonjour,

    L’erreur vous dit que la sélection de nœud ne retourne rien. C’est normal, vu que votre flux est construit d’une autre manière : plus précis il faut sélecter « /rss/channel/title » a place de « /feed/title », mais notez aussi que le node « /feed/entry/published » n’existe pas dans votre fichier XML et vous allez obtenir une autre erreur a la ligne suivante.

    Donc vous avez deux possibilités : soit modifier le flux pour avoir le même format XML, soit modifié le code et les sélections faites pour accéder au nœud dont vous avez besoin.

    Pour la deuxième variante, vous pouvez modifier les fonctions getBlogPosts et getItemsFromXML dans data.js avec :

    function getBlogPosts() {
            // 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.selectSingleNode("/rss/channel/generator").text;
                       
                            // Use the date of the latest post as the last updated date
                            var ds = articleSyndication.selectSingleNode("/rss/channel/item/pubDate").text;
                            feed.updated = "Last updated " + ds;
                            // Get the blog posts
                            getItemsFromXml(articleSyndication, blogPosts, feed);
                        
                    });
                });
            });
            return blogPosts;
        }
        function getItemsFromXml(articleSyndication, blogPosts, feed) {
            // Get the info for each blog post
            var posts = articleSyndication.selectNodes("//item");
            // 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.selectSingleNode("title").text;
                var postAuthor = post.selectSingleNode("dc:creator").text;
                var pds = post.selectSingleNode("pubDate").text;
                // Process the content so it displays nicely
                var staticContent = toStaticHTML(post.selectSingleNode("description").text);
                // Store the post info we care about in the array
                blogPosts.push({
                    group: feed,
                    key: feed.title,
                    title: postTitle,
                    author: postAuthor,
                    pubDate: pds,
                    content: staticContent,
                    backgroundImage: mediumGray
                });
            }
        }

    Et assurez-vous que vous affichez l’information correcte dans splitPage.html :

        <div class="itemtemplate" data-win-control="WinJS.Binding.Template">
            <img class="item-image" src="#" data-win-bind="src: backgroundImage; alt: title" />
            <div class="item-info">
                <h3 class="item-title win-type-ellipsis" data-win-bind="textContent: author"></h3>
                <h6 class="item-subtitle win-type-ellipsis" data-win-bind="textContent: title"></h6>
                <h4 class="item-description" data-win-bind="textContent: pubDate"></h4>
            </div>
        </div>

    aussi que dans itemsPage.html :

       <div class="itemtemplate" data-win-control="WinJS.Binding.Template">
            <img class="item-image" src="#" data-win-bind="src: backgroundImage; alt: title" />
            <div class="item-overlay">
                <h4 class="item-title" data-win-bind="textContent: title"></h4>
                <h6 class="item-subtitle win-type-ellipsis" data-win-bind="textContent: updated"></h6>
            </div>
        </div>

    Bonne journée,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    mercredi 7 mars 2012 11:01

Toutes les réponses

  •  

    Bonjour,

    Pouvez-vous svp nous indiquer le message et le code d’erreur ?

    Bonne journée,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    mercredi 7 mars 2012 07:49
  • Voila :

    https://twitter.com/#!/j_bontemps/media/slideshow?url=pic.twitter.com%2FOUD0UiED

    Merci
    Jeremy

    mercredi 7 mars 2012 08:06
  • Bonjour,

    L’erreur vous dit que la sélection de nœud ne retourne rien. C’est normal, vu que votre flux est construit d’une autre manière : plus précis il faut sélecter « /rss/channel/title » a place de « /feed/title », mais notez aussi que le node « /feed/entry/published » n’existe pas dans votre fichier XML et vous allez obtenir une autre erreur a la ligne suivante.

    Donc vous avez deux possibilités : soit modifier le flux pour avoir le même format XML, soit modifié le code et les sélections faites pour accéder au nœud dont vous avez besoin.

    Pour la deuxième variante, vous pouvez modifier les fonctions getBlogPosts et getItemsFromXML dans data.js avec :

    function getBlogPosts() {
            // 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.selectSingleNode("/rss/channel/generator").text;
                       
                            // Use the date of the latest post as the last updated date
                            var ds = articleSyndication.selectSingleNode("/rss/channel/item/pubDate").text;
                            feed.updated = "Last updated " + ds;
                            // Get the blog posts
                            getItemsFromXml(articleSyndication, blogPosts, feed);
                        
                    });
                });
            });
            return blogPosts;
        }
        function getItemsFromXml(articleSyndication, blogPosts, feed) {
            // Get the info for each blog post
            var posts = articleSyndication.selectNodes("//item");
            // 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.selectSingleNode("title").text;
                var postAuthor = post.selectSingleNode("dc:creator").text;
                var pds = post.selectSingleNode("pubDate").text;
                // Process the content so it displays nicely
                var staticContent = toStaticHTML(post.selectSingleNode("description").text);
                // Store the post info we care about in the array
                blogPosts.push({
                    group: feed,
                    key: feed.title,
                    title: postTitle,
                    author: postAuthor,
                    pubDate: pds,
                    content: staticContent,
                    backgroundImage: mediumGray
                });
            }
        }

    Et assurez-vous que vous affichez l’information correcte dans splitPage.html :

        <div class="itemtemplate" data-win-control="WinJS.Binding.Template">
            <img class="item-image" src="#" data-win-bind="src: backgroundImage; alt: title" />
            <div class="item-info">
                <h3 class="item-title win-type-ellipsis" data-win-bind="textContent: author"></h3>
                <h6 class="item-subtitle win-type-ellipsis" data-win-bind="textContent: title"></h6>
                <h4 class="item-description" data-win-bind="textContent: pubDate"></h4>
            </div>
        </div>

    aussi que dans itemsPage.html :

       <div class="itemtemplate" data-win-control="WinJS.Binding.Template">
            <img class="item-image" src="#" data-win-bind="src: backgroundImage; alt: title" />
            <div class="item-overlay">
                <h4 class="item-title" data-win-bind="textContent: title"></h4>
                <h6 class="item-subtitle win-type-ellipsis" data-win-bind="textContent: updated"></h6>
            </div>
        </div>

    Bonne journée,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    mercredi 7 mars 2012 11:01
  • Merci beaucoup pour votre aide précieuse !
    mercredi 7 mars 2012 11:36
  •  

    Bonjour,

    De rien J Svp n’oubliez pas utiliser l’option « Marquer comme réponse » pour le message qui vous a aidé résoudre votre problème pour clôturer le thread. Merci d’avance !

    On vous attend avec autres questions sur les forums MSDN France.

    Bonne journée,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    mercredi 7 mars 2012 11:39