Public/Get-News.ps1

function Get-News {
    <#
        .Synopsis
        Zeigt RSS-Feeds an.
 
        .DESCRIPTION
        Zeigt ATOM Version 1.0 RRS-Feeds aus dem Internet oder Dateisystem an.
 
        .EXAMPLE
        Get-News -Uri http://rss.golem.de/rss.php?feed=ATOM1.0
 
        Liefert alle RSS-News-Feed von Golem.de.
 
        .EXAMPLE
        Get-News -Uri http://rss.golem.de/rss.php?feed=ATOM1.0 -First 3
 
        .EXAMPLE
        "http://www.heise.de/newsticker/heise-top-atom.xml", "http://rss.golem.de/rss.php?feed=ATOM1.0", "http://rss.golem.de/rss.php?tp=wirtschaft&feed=ATOM1.0" | Get-News -First 3
 
        .EXAMPLE
        Get-News -Uri "http://rss.golem.de/rss.php?feed=ATOM1.0" | ft
 
        .EXAMPLE
        Get-News -Uri "http://rss.golem.de/rss.php?feed=ATOM1.0" | where Titel -Like "E*" | ft
 
        .EXAMPLE
        Get-News -Uri "http://rss.golem.de/rss.php?feed=ATOM1.0" | Out-GridView
 
        .EXAMPLE
        Get-News -Uri "http://rss.golem.de/rss.php?feed=ATOM1.0" -First 2 -OpenLinkInBrowser
    #>

    Param (
        [Parameter(
            Mandatory         = $true,
            ValueFromPipeLine = $true)]
        [string]
        $Uri,

        [UInt32]
        $First = [System.UInt32]::MaxValue,

        [switch]
        [bool]
        $OpenLinkInBrowser = $false
    )

    Begin  {
        $enUS        = New-Object -TypeName System.Globalization.CultureInfo -ArgumentList "en-US"
        $xmlDokument = New-Object -TypeName System.Xml.XmlDocument
    }
    Process {
        $FirstTemp = $First
        $xmlDokument.Load($Uri)
        foreach ($item in $xmlDokument.feed.entry) {
            if ($FirstTemp -gt 0) {
                $FirstTemp--
                $link = $item.link.href
                if($OpenLinkInBrowser) {
                    [System.Diagnostics.Process]::Start($link)
                    continue
                }

                $title     = $item.title.InnerText
                $published = [DateTime]::Parse($item.published, $enUS)
                $author    = $item.author.name
                $summery   = $item.summary.InnerText

                $result = @{ "Titel" = $title ; "StandUTC" = $published ; "Autor" = $author; "Link" = $link; "Beschreibung" = $summery }
                New-Object PSCustomObject -Property $result | Select-Object Titel, StandUTC, Autor, Link, Beschreibung
            }
            else
            {
                break
            }
        }
    }
    End {}
}