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 {} } |