Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Простой парсинг xml

Ответить
Настройки темы
PowerShell - Простой парсинг xml

Аватара для NickM

Ветеран


Contributor


Сообщения: 4240
Благодарности: 994


Конфигурация

Профиль | Отправить PM | Цитировать


Уважаемые, здравствуйте!

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

На форуме уже находил похожие темы и кое-что из них почерпнул:
сейчас могу посчитать итоговую сумму выплат, получить список ФИО, а вот как объединить в одну строку "ФИО";"СумВыпл" (можно в консоль, можно в *.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"
    >
      <ФИО
        Фамилия=""
        Имя=""
        Отчество=""
      />
      <СвПред
        НаимДок="Удостоверение"
       />
    </Подписант>
    <ПерсСвФЛ
      ИННФЛ=""
      СНИЛС=""
      СумВыпл=""
    >
      <ФИО
        Фамилия="Иванов"
        Имя="Иван"
        Отчество="Иванович"
      />
    </ПерсСвФЛ>
  </Документ>
</Файл>

Отправлено: 15:40, 24-05-2023

 

Deadooshka


Сообщения: 2482
Благодарности: 671

Профиль | Отправить PM | Цитировать


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

Последний раз редактировалось Sham, 25-05-2023 в 07:53. Причина: ps7 сам коэрсит к объекту, а ранние версии надо явно приводить к типу

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:25, 24-05-2023 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для NickM

Ветеран


Contributor


Сообщения: 4240
Благодарности: 994

Профиль | Отправить PM | Цитировать


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

Отправлено: 07:48, 25-05-2023 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Простой парсинг xml

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
vb: парсинг ответа xml For_Sites@twitter Программирование и базы данных 0 29-04-2015 12:48
PowerShell - парсинг xml firstarey Скриптовые языки администрирования Windows 4 31-12-2014 13:37
PowerShell - [решено] парсинг xml firstarey Скриптовые языки администрирования Windows 2 17-04-2014 14:25
CMD/BAT - [решено] парсинг xml :) firstarey Скриптовые языки администрирования Windows 10 07-03-2014 12:52
CMD/BAT - Парсинг XML/TXT mxm199 Скриптовые языки администрирования Windows 10 17-07-2012 12:34




 
Переход