Exporting list of URLs

Extra alignment tab has been changed to cr. } using table, tabular and resizebox

Single word request: Harming the benefactor

Peter's Strange Word

BitNot does not flip bits in the way I expected

How do I express some one as a black person?

Time travel short story where dinosaur doesn't taste like chicken

Does splitting a potentially monolithic application into several smaller ones help prevent bugs?

Built-In Shelves/Bookcases - IKEA vs Built

Grey hair or white hair

Making a sword in the stone, in a medieval world without magic

How strictly should I take "Candidates must be local"?

Placing subfig vertically

Can you reject a postdoc offer after the PI has paid a large sum for flights/accommodation for your visit?

What is the chance of making a successful appeal to dismissal decision from a PhD program after failing the qualifying exam in the 2nd attempt?

Rejected in 4th interview round citing insufficient years of experience

Should I tell my boss the work he did was worthless

Why would a jet engine that runs at temps excess of 2000°C burn when it crashes?

PTIJ: How can I halachically kill a vampire?

MTG: Can I kill an opponent in response to lethal activated abilities, and not take the damage?

Do f-stop and exposure time perfectly cancel?

A question on the ultrafilter number

Space in array system equations

Accountant/ lawyer will not return my call

Do items de-spawn in Diablo?



Exporting list of URLs














3















In SDL Web 8.5 is it possible to export a list of all URLs in a specific tree?



We're hoping to use this to cross-check an XML sitemap to ensure nothing that's live isn't missed out (as crawlers won't index anything with a direct link to it).



Thank you,









share







New contributor




KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
























    3















    In SDL Web 8.5 is it possible to export a list of all URLs in a specific tree?



    We're hoping to use this to cross-check an XML sitemap to ensure nothing that's live isn't missed out (as crawlers won't index anything with a direct link to it).



    Thank you,









    share







    New contributor




    KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






















      3












      3








      3








      In SDL Web 8.5 is it possible to export a list of all URLs in a specific tree?



      We're hoping to use this to cross-check an XML sitemap to ensure nothing that's live isn't missed out (as crawlers won't index anything with a direct link to it).



      Thank you,









      share







      New contributor




      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      In SDL Web 8.5 is it possible to export a list of all URLs in a specific tree?



      We're hoping to use this to cross-check an XML sitemap to ensure nothing that's live isn't missed out (as crawlers won't index anything with a direct link to it).



      Thank you,







      importexportservice





      share







      New contributor




      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.










      share







      New contributor




      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      share



      share






      New contributor




      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 12 hours ago









      KJHKJH

      161




      161




      New contributor




      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      KJH is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          2 Answers
          2






          active

          oldest

          votes


















          5














          There is no 'out of the box' way via the GUI, but you can do this using the Core Service.



          Something like the following code (which outputs a CSV) should give you a good start:



          void Main()

          List<PageData> allPages = Client.GetList("tcm:25-1234-4", new OrganizationalItemItemsFilterData Recursive = true, ItemTypes = new[] ItemType.Page ).Cast<PageData>().ToList();
          foreach (PageData page in allPages)

          OutputPageDetails(page.Id);



          void OutputPageDetails(string pageId)

          PageData page = (PageData)Client.Read(pageId, null);
          string livePagePublishUrl = Client.GetPublishUrl(pageId, "Live");
          Console.WriteLine($"pageId, "page.Title", "livePagePublishUrl"");



          (P.S. You'll probably want to consider using Client.GetListXML(), rather than Cleint.GetList() for efficiency)






          share|improve this answer

























          • Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

            – Rick Pannekoek
            7 hours ago











          • I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

            – Rick Pannekoek
            7 hours ago











          • Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

            – Jonathan Williams
            7 hours ago











          • That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

            – Jonathan Williams
            7 hours ago












          • The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

            – Rick Pannekoek
            6 hours ago



















          1














          Actually Jonathan's answer is just part of the solution. You should create 2 lists:



          1. first list is the list created using Core Service API and this list
            is the list of URLs for pages that CM side thinks that are
            published.

          2. Second list is list of page URLs created using Content Delivery API, and this list is the list of actually published pages.

          In ideal world, these 2 lists should be identical, but in most cases they are not. Second list is the list of actually published pages on CD Environment, so you should in any case do the following:



          • Create both lists

          • compare them and make sure that they are in sync (if there are some URLs in first but not in second list, republish the page so that it indeed comes to CD side. If there is URL in second, but not in first list, it means that item is orphan, so you should create undeploy package and remove it from CD environment).





          share|improve this answer






















            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "485"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );






            KJH is a new contributor. Be nice, and check out our Code of Conduct.









            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftridion.stackexchange.com%2fquestions%2f19871%2fexporting-list-of-urls%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            5














            There is no 'out of the box' way via the GUI, but you can do this using the Core Service.



            Something like the following code (which outputs a CSV) should give you a good start:



            void Main()

            List<PageData> allPages = Client.GetList("tcm:25-1234-4", new OrganizationalItemItemsFilterData Recursive = true, ItemTypes = new[] ItemType.Page ).Cast<PageData>().ToList();
            foreach (PageData page in allPages)

            OutputPageDetails(page.Id);



            void OutputPageDetails(string pageId)

            PageData page = (PageData)Client.Read(pageId, null);
            string livePagePublishUrl = Client.GetPublishUrl(pageId, "Live");
            Console.WriteLine($"pageId, "page.Title", "livePagePublishUrl"");



            (P.S. You'll probably want to consider using Client.GetListXML(), rather than Cleint.GetList() for efficiency)






            share|improve this answer

























            • Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

              – Rick Pannekoek
              7 hours ago











            • I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

              – Rick Pannekoek
              7 hours ago











            • Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

              – Jonathan Williams
              7 hours ago











            • That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

              – Jonathan Williams
              7 hours ago












            • The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

              – Rick Pannekoek
              6 hours ago
















            5














            There is no 'out of the box' way via the GUI, but you can do this using the Core Service.



            Something like the following code (which outputs a CSV) should give you a good start:



            void Main()

            List<PageData> allPages = Client.GetList("tcm:25-1234-4", new OrganizationalItemItemsFilterData Recursive = true, ItemTypes = new[] ItemType.Page ).Cast<PageData>().ToList();
            foreach (PageData page in allPages)

            OutputPageDetails(page.Id);



            void OutputPageDetails(string pageId)

            PageData page = (PageData)Client.Read(pageId, null);
            string livePagePublishUrl = Client.GetPublishUrl(pageId, "Live");
            Console.WriteLine($"pageId, "page.Title", "livePagePublishUrl"");



            (P.S. You'll probably want to consider using Client.GetListXML(), rather than Cleint.GetList() for efficiency)






            share|improve this answer

























            • Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

              – Rick Pannekoek
              7 hours ago











            • I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

              – Rick Pannekoek
              7 hours ago











            • Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

              – Jonathan Williams
              7 hours ago











            • That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

              – Jonathan Williams
              7 hours ago












            • The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

              – Rick Pannekoek
              6 hours ago














            5












            5








            5







            There is no 'out of the box' way via the GUI, but you can do this using the Core Service.



            Something like the following code (which outputs a CSV) should give you a good start:



            void Main()

            List<PageData> allPages = Client.GetList("tcm:25-1234-4", new OrganizationalItemItemsFilterData Recursive = true, ItemTypes = new[] ItemType.Page ).Cast<PageData>().ToList();
            foreach (PageData page in allPages)

            OutputPageDetails(page.Id);



            void OutputPageDetails(string pageId)

            PageData page = (PageData)Client.Read(pageId, null);
            string livePagePublishUrl = Client.GetPublishUrl(pageId, "Live");
            Console.WriteLine($"pageId, "page.Title", "livePagePublishUrl"");



            (P.S. You'll probably want to consider using Client.GetListXML(), rather than Cleint.GetList() for efficiency)






            share|improve this answer















            There is no 'out of the box' way via the GUI, but you can do this using the Core Service.



            Something like the following code (which outputs a CSV) should give you a good start:



            void Main()

            List<PageData> allPages = Client.GetList("tcm:25-1234-4", new OrganizationalItemItemsFilterData Recursive = true, ItemTypes = new[] ItemType.Page ).Cast<PageData>().ToList();
            foreach (PageData page in allPages)

            OutputPageDetails(page.Id);



            void OutputPageDetails(string pageId)

            PageData page = (PageData)Client.Read(pageId, null);
            string livePagePublishUrl = Client.GetPublishUrl(pageId, "Live");
            Console.WriteLine($"pageId, "page.Title", "livePagePublishUrl"");



            (P.S. You'll probably want to consider using Client.GetListXML(), rather than Cleint.GetList() for efficiency)







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited 7 hours ago

























            answered 11 hours ago









            Jonathan WilliamsJonathan Williams

            13k1753




            13k1753












            • Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

              – Rick Pannekoek
              7 hours ago











            • I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

              – Rick Pannekoek
              7 hours ago











            • Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

              – Jonathan Williams
              7 hours ago











            • That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

              – Jonathan Williams
              7 hours ago












            • The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

              – Rick Pannekoek
              6 hours ago


















            • Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

              – Rick Pannekoek
              7 hours ago











            • I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

              – Rick Pannekoek
              7 hours ago











            • Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

              – Jonathan Williams
              7 hours ago











            • That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

              – Jonathan Williams
              7 hours ago












            • The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

              – Rick Pannekoek
              6 hours ago

















            Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

            – Rick Pannekoek
            7 hours ago





            Generally speaking, GetListXML is not more efficient than GetList (as a matter of fact, the first one internally calls the second and then builds the list XML).

            – Rick Pannekoek
            7 hours ago













            I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

            – Rick Pannekoek
            7 hours ago





            I assume the example TCM URI (tcm:25-1234-64) should actually be the ID (TCM URI or WebDAV URL) of a Publication rather than a Page ?

            – Rick Pannekoek
            7 hours ago













            Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

            – Jonathan Williams
            7 hours ago





            Good point, Rick. It should’ve been the TcmId of a Structure Group where we’re starting from (rather than a page). I’ve updated it now

            – Jonathan Williams
            7 hours ago













            That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

            – Jonathan Williams
            7 hours ago






            That’s interesting about ‘GetListXML()’ calling ‘GetList()’ internally. My concern was more about the amount of data coming ‘over the wire’ when working with a large list of objects (when using ‘GetList()’). I’ve never actually compared the two sizes though.

            – Jonathan Williams
            7 hours ago














            The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

            – Rick Pannekoek
            6 hours ago






            The amount of data for both types of lists can be optimized using the ListBaseColumns and AdditionalColumns properties of the list filter. In general, GetList results in so-called R6 XML going over the wire, whereas GetListXML results in R5 XML. The latter is older, but a bit more compact (it heavily uses XML attributes rather than nested XML elements). So, indeed, GetList will result in a bit more data sent over the wire, but in many situations this is neglectable.

            – Rick Pannekoek
            6 hours ago












            1














            Actually Jonathan's answer is just part of the solution. You should create 2 lists:



            1. first list is the list created using Core Service API and this list
              is the list of URLs for pages that CM side thinks that are
              published.

            2. Second list is list of page URLs created using Content Delivery API, and this list is the list of actually published pages.

            In ideal world, these 2 lists should be identical, but in most cases they are not. Second list is the list of actually published pages on CD Environment, so you should in any case do the following:



            • Create both lists

            • compare them and make sure that they are in sync (if there are some URLs in first but not in second list, republish the page so that it indeed comes to CD side. If there is URL in second, but not in first list, it means that item is orphan, so you should create undeploy package and remove it from CD environment).





            share|improve this answer



























              1














              Actually Jonathan's answer is just part of the solution. You should create 2 lists:



              1. first list is the list created using Core Service API and this list
                is the list of URLs for pages that CM side thinks that are
                published.

              2. Second list is list of page URLs created using Content Delivery API, and this list is the list of actually published pages.

              In ideal world, these 2 lists should be identical, but in most cases they are not. Second list is the list of actually published pages on CD Environment, so you should in any case do the following:



              • Create both lists

              • compare them and make sure that they are in sync (if there are some URLs in first but not in second list, republish the page so that it indeed comes to CD side. If there is URL in second, but not in first list, it means that item is orphan, so you should create undeploy package and remove it from CD environment).





              share|improve this answer

























                1












                1








                1







                Actually Jonathan's answer is just part of the solution. You should create 2 lists:



                1. first list is the list created using Core Service API and this list
                  is the list of URLs for pages that CM side thinks that are
                  published.

                2. Second list is list of page URLs created using Content Delivery API, and this list is the list of actually published pages.

                In ideal world, these 2 lists should be identical, but in most cases they are not. Second list is the list of actually published pages on CD Environment, so you should in any case do the following:



                • Create both lists

                • compare them and make sure that they are in sync (if there are some URLs in first but not in second list, republish the page so that it indeed comes to CD side. If there is URL in second, but not in first list, it means that item is orphan, so you should create undeploy package and remove it from CD environment).





                share|improve this answer













                Actually Jonathan's answer is just part of the solution. You should create 2 lists:



                1. first list is the list created using Core Service API and this list
                  is the list of URLs for pages that CM side thinks that are
                  published.

                2. Second list is list of page URLs created using Content Delivery API, and this list is the list of actually published pages.

                In ideal world, these 2 lists should be identical, but in most cases they are not. Second list is the list of actually published pages on CD Environment, so you should in any case do the following:



                • Create both lists

                • compare them and make sure that they are in sync (if there are some URLs in first but not in second list, republish the page so that it indeed comes to CD side. If there is URL in second, but not in first list, it means that item is orphan, so you should create undeploy package and remove it from CD environment).






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 8 hours ago









                Marko MilicMarko Milic

                4,67621145




                4,67621145




















                    KJH is a new contributor. Be nice, and check out our Code of Conduct.









                    draft saved

                    draft discarded


















                    KJH is a new contributor. Be nice, and check out our Code of Conduct.












                    KJH is a new contributor. Be nice, and check out our Code of Conduct.











                    KJH is a new contributor. Be nice, and check out our Code of Conduct.














                    Thanks for contributing an answer to Tridion Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftridion.stackexchange.com%2fquestions%2f19871%2fexporting-list-of-urls%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Are there any AGPL-style licences that require source code modifications to be public? Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Force derivative works to be publicAre there any GPL like licenses for Apple App Store?Do you violate the GPL if you provide source code that cannot be compiled?GPL - is it distribution to use libraries in an appliance loaned to customers?Distributing App for free which uses GPL'ed codeModifications of server software under GPL, with web/CLI interfaceDoes using an AGPLv3-licensed library prevent me from dual-licensing my own source code?Can I publish only select code under GPLv3 from a private project?Is there published precedent regarding the scope of covered work that uses AGPL software?If MIT licensed code links to GPL licensed code what should be the license of the resulting binary program?If I use a public API endpoint that has its source code licensed under AGPL in my app, do I need to disclose my source?

                    2013 GY136 Descoberta | Órbita | Referências Menu de navegação«List Of Centaurs and Scattered-Disk Objects»«List of Known Trans-Neptunian Objects»

                    Metrô de Los Teques Índice Linhas | Estações | Ver também | Referências Ligações externas | Menu de navegação«INSTITUCIÓN»«Mapa de rutas»originalMetrô de Los TequesC.A. Metro Los Teques |Alcaldía de Guaicaipuro – Sitio OficialGobernacion de Mirandaeeeeeee