Skip to content
/

The other day I needed to get the URLs for all pages in my blog for some PowerShell scripting I wanted to do. Like most websites this blog has a sitemap and I wanted to use that as a source.
As I couldn’t find any existing PowerShell scripts on the web that I could use, I just wrote one myself.
Now I like to share this script with you.

The other day I needed to get the URLs for all pages in my blog for some PowerShell scripting I wanted to do. Like most websites this blog has a sitemap and I wanted to use that as a source.
As I couldn’t find any existing PowerShell scripts on the web that I could use, I just wrote one myself.
Now I like to share this script with you.

At the end of the post you will find the link to the source code.

Basic usage

Just execute the script with an URL to an XML Sitemap.

.\ConvertFrom-SiteMap.ps1 -Url https://blog.hompus.nl/sitemap.xml

Which results in something like this:

loc        : https://blog.hompus.nl/
lastmod    : 2017-02-10T23:57:52+00:00
changefreq : daily
priority   : 1.0

loc        : https://blog.hompus.nl/category/azure/
lastmod    : 2017-02-08T17:43:41+00:00
changefreq : weekly
priority   : 0.3

loc        : https://blog.hompus.nl/category/csharp/
lastmod    : 2016-12-14T08:53:46+00:00
changefreq : weekly
priority   : 0.3

Displaying only the first 3 entries

Under the section XML tag definitions the protocol states that the lastmod, changefreq and priority attributes are optional, so they can be missing when querying a different sitemap.

Now you can do basic PowerShell manipulation of the result set like sorting, selecting, filtering and formatting. For example:

.\ConvertFrom-SiteMap.ps1 -Url https://blog.hompus.nl/sitemap.xml 
                                   | Sort-Object priority -Descending 
                                   | Select-Object priority, changefreq, loc -First 5 
                                   | Where-Object { $_.priority -ge 0.3 }
                                   | Format-Table

Outputs:

priority changefreq loc
-------- ---------- ---
1.0      daily      https://blog.hompus.nl/
0.6      weekly     https://blog.hompus.nl/about/
0.6      weekly     https://blog.hompus.nl/archives/
0.3      weekly     https://blog.hompus.nl/category/windows/
0.3      weekly     https://blog.hompus.nl/category/visual-studio/

Ignoring Sitemap Index entries

An sitemap can also be a Sitemap Index File. The file then contains links to other sitemap files.
By default the script will follow these links. If you don’t want this to happen you can set the NoFollow switch.

.\ConvertFrom-SiteMap.ps1 -Url https://blog.hompus.nl/sitemap.xml -NoFollow

Source code

The complete source code is available as a GitHub Gist: ConvertFrom-SiteMap.ps1.

/

Last month I gave my session, in Dutch, titled Serious Request, Azure als schaalbaar platform during the dotNed Saturday event.
I’m sharing my slides so you can start building awesome, secure, scalable, performing and monitorable web platforms using Azure.

Last month I gave my session, in Dutch, titled Serious Request, Azure als schaalbaar platform during the event.
First I’d like to thank everyone attending this session.

The session was about my experiences using Microsoft Azure to build a high available, secure and scalable platform for digital donations.
This platform is used during 3FM Serious Request, the annual charity event organized by the Dutch radio station 3FM for the Dutch Red Cross.

I’m sharing my slides so you can use my guides, tips & tricks to start building awesome, secure, scalable, performing and monitorable web platforms using Azure.

Any questions about my session? Just contact me.

Filed under Azure
Last update:
/

I’m invited to speak at dotNed Saturday, the Dutch .NET community event.
My session, is called “Serious Request, Azure als schaalbaar platform” and I’ll be talking about my experiences using Azure to build a high available, secure and scalable platform for digital donations. This platform is used during “3FM Serious Request”, the annual charity event organized by the Dutch radio station 3FM for the Dutch Red Cross.


dotNed Saturday
I’m invited to speak at , the Dutch .NET community event.
The event is held on the of January at InfoSupport in Veenendaal

My session, in Dutch, is called and I’ll be talking about my experiences using Azure to build a high available, secure and scalable platform for digital donations.
This platform is used during 3FM Serious Request, the annual charity event organized by the Dutch radio station 3FM for the Dutch Red Cross.

If the schedule doesn’t change, I’ll be speaking in the Seminarruimte 2 between - .

Filed under Azure
Last update: