LevT
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Переписал функцию по универсальному шаблону Код: filter node { $_.node } filter Select-USD { $HashProps = @{} $HashProps.Title = (select-xml -Xml $_ -XPath "title" | node).value $usd = select-xml -Xml $_ -XPath "currencies/c[@id='USD']" | node $HashProps.BR = $usd.br $HashProps.AR = $usd.ar New-Object -TypeName PSCustomObject -Property $HashProps } $data.source.organizations.organization | Select-USD | Добавлено: YuS_2 Только у меня на выходе объект, в отличие от -- И выходной объект, и функция поддаются повторному использованию Код: filter node { $_.node } filter Select-Currency { param ( $Currency = 'USD' ) #$HashProps = @{} $HashProps.Title = (select-xml -Xml $_ -XPath "title" | node).value $HashProps.BR = (select-xml -Xml $_ -XPath "currencies/c[@id=$Currency]" | node).br $HashProps.AR = (select-xml -Xml $_ -XPath "currencies/c[@id=$Currency]" | node).ar New-Object -TypeName PSCustomObject -Property $HashProps } $output = $data.source.organizations.organization | Select-USD $output | sort BR -Descending | select -expand Title -First 1 | Добавлено: Следующим шагом обобщаем функцию ещё дальше Код: filter node { $_.node } $selecttitle = {select-xml -Xml $_ -XPath "title" | node} $selectcurrency = {select-xml -Xml $_ -XPath "currencies/c[@id=$Currency]" | node} $input=@" Title,$selecttitle,value BR,$selectcurrency,br AR,$selectcurrency,ar "@ $output = $data.source.organizations.organization | Select-Currency 'USD' -Template $input | функцию ещё чуток модифицировать под второй входной параметр... Добавлено: Точнее, даже под вот такой вход Код: $selecttitle = 'title' $selectcurrency = 'currencies/c[@id=$Currency]' @" Property,XPathSelector,ItemToSelectAfter Name,$selecttitle,value BR,$selectcurrency,br AR,$selectcurrency,ar "@ | ConvertFrom-Csv -OutVariable input $data.source.organizations.organization | Select-Currency -Currency 'USD' -SelectorSet $input | И ничего лишнего! | Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 17:49 05-11-2017 | Исправлено: LevT, 00:28 06-11-2017 |
|