Powershell XML - ищите значение, выбирайте другое - PullRequest
0 голосов
/ 20 марта 2020

У меня есть XML:

<tabela_kursow typ="A" uid="20a001">
 <numer_tabeli>001/A/NBP/2020</numer_tabeli>
 <data_publikacji>2020-01-02</data_publikacji>
 <pozycja>
  <nazwa_waluty>bat (Tajlandia)</nazwa_waluty>
  <przelicznik>1</przelicznik>
  <kod_waluty>THB</kod_waluty>
  <kurs_sredni>0,1260</kurs_sredni>
 </pozycja>
 <pozycja>
  <nazwa_waluty>dolar amerykański</nazwa_waluty>
  <przelicznik>1</przelicznik>
  <kod_waluty>USD</kod_waluty>
  <kurs_sredni>3,8000</kurs_sredni>
 </pozycja>
...

, и я пытаюсь получить kurs_sredni для конкретного kod_waluty.

Что у меня есть:

$file=[xml](new-object Net.WebClient).DownloadString("http://www.nbp.pl/kursy/xml/$item.xml")
$tmp=$file.SelectSingleNode("//pozycja[@kod_waluty='USD']/../kurs_sredni").Value
$tmp2=$file.tabela_kursow.pozycja.kurs_sredni[7] -replace ",","."

$ tmp пуст, хотя $ tmp2 является верным, но он выбирается по индексу, а не по коду валюты.

Как я могу получить kurs_sredni при поиске kod_waluty = USD?

1 Ответ

0 голосов
/ 20 марта 2020

Решение:

$tmp=$xml.SelectNodes("//tabela_kursow/pozycja/kod_waluty[text()='USD']/../kurs_sredni").innertext -replace ",","."
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...