Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Простой парсинг xml (http://forum.oszone.net/showthread.php?t=353608)

NickM 24-05-2023 15:40 3009561

Простой парсинг xml
 
Уважаемые, здравствуйте!

Может кто подскажет как объединить вывод в виде "ФИО";"СумВыпл" из тега "ПерсСвФЛ"?

На форуме уже находил похожие темы и кое-что из них почерпнул:
сейчас могу посчитать итоговую сумму выплат, получить список ФИО, а вот как объединить в одну строку "ФИО";"СумВыпл" (можно в консоль, можно в *.csv) ума не хватает.

Скрытый текст
Код:

<?xml version="1.0" encoding="windows-1251"?>
<Файл
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  ИдФайл="NO_PERSSVFL_0278_0278_20230524_5E7ABEB0-9D37-4037-A51F-CC90F8630FF4"
  ВерсПрог=""
  ВерсФорм=""
>
  <Документ
    КНД="1151162"
    ДатаДок="24.05.2023"
    НомКорр="0"
    Период="04"
    ОтчетГод="2023"
    КодНО="0278"
    ПоМесту="214"
  >
    <СвНП
      Тлф=""
    >
      <НПЮЛ
        НаимОрг=""
        ИННЮЛ=""
        КПП=""
      >
      </НПЮЛ>
    </СвНП>
    <Подписант
      ПрПодп="2"
    >
      <ФИО
        Фамилия=""
        Имя=""
        Отчество=""
      />
      <СвПред
        НаимДок="Удостоверение"
      />
    </Подписант>
    <ПерсСвФЛ
      ИННФЛ=""
      СНИЛС=""
      СумВыпл=""
    >
      <ФИО
        Фамилия="Иванов"
        Имя="Иван"
        Отчество="Иванович"
      />
    </ПерсСвФЛ>
  </Документ>
</Файл>


Sham 24-05-2023 19:25 3009571

наверное что-то типа этого
Код:

$xml.Файл.Документ.ПерсСвФЛ | ForEach-Object { [PSCustomObject]@{
  ФИО = $_.ФИО.Фамилия, $_.ФИО.Имя, $_.ФИО.Отчество -join ' '
  СумВыпл = $_.СумВыпл
}} | ConvertTo-Csv


NickM 25-05-2023 07:48 3009581

Получилось что-то типа такого, результат устраивает:
Код:

gci $args[0]|%{([xml](gc $_.fullname)).SelectNodes('//ПерсСвФЛ')} | ForEach-Object {
$_.ФИО.Фамилия + " " + $_.ФИО.Имя + " " + $_.ФИО.Отчество + ";" + $_.СумВыпл.Replace(".",",")
} | Out-File 'FIOSUM.csv'



Время: 12:31.

Время: 12:31.
© OSzone.net 2001-