sortie d'une collection utilisant powershell et htmlAgilityPack

html-agility-pack powershell powershell-v2.0

Question

Premièrement, oui, je suis un spécialiste des scripts et de PowerShell, car cela deviendra douloureusement évident. Dans mes tentatives pour apprendre, j'ai travaillé avec un script d'ici: http://www.leeholmes.com/blog/2010/03/05/html-agility-pack-rocks-your-screen-scraping-world/

Voici ce que j'ai jusqu'ici:

add-type -Path 'C:\Program Files (x86)\htmlAgilityPack\HtmlAgilityPack.dll'
$doc = New-Object HtmlAgilityPack.HtmlDocument 
$result = $doc.Load("C:\scipts\test.html") 
$texts = $doc.DocumentNode.SelectNodes("//table[@class='dataTable']/tbody/tr/td[1]/a[1]") 
$result = $texts | % {
$testText = $_
$Platform = $testtext.innertext
New-Object PsObject -Property @{ Platform = $Platform} | Select Platform 
}
$result | Sort Platform | out-string

Cela me donne les articles que je cherche.

* Le défi *

J'essaie d'obtenir cette sortie dans une variable sous forme de chaîne unique avec chaque élément suivi d'une virgule. pour Exemple Item1, Item2, Item 3 etc ...

Toute aide ou explication serait appréciée, car je me suis mis à chercher dans les yeux et je ne supporte pas nécessairement ce que je trouve.

Merci!

Réponse acceptée

Depuis l’aide de powershell ( get-help about_join ):

Le diagramme suivant montre la syntaxe de l'opérateur de jointure.

<String[]> -Join <Delimiter>

Pour résoudre votre problème, vous devez:

  1. Créez un tableau de chaînes contenant les chaînes que vous souhaitez rejoindre:

    $arrayofstrings = $result | Sort Platform | foreach-object {$_.Platform}
    
  2. Joignez les chaînes en utilisant une virgule comme délimiteur:

    $joinedstring = $arrayofstrings -join ", "
    

$joinedstring contiendra Item1, Item2, Item3




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi