owen.zemlyanoi
Почетный гость
Есть xml файл, в котором есть 2 узла (работники и подразделения). Задача в том, чтобы выгрузить конкретные поля из xml в csv. Из узла работники все поля успешно прошел, кроме подразделений так, как там хранятся ссылки на GUID из узла подразделения. Как мне сделать так, чтобы напротив работника выгружать соответствующие им подразделения?
Ниже скрипт, как я проделывал работу
Ниже скрипт, как я проделывал работу
Код:
$path_xml = "D:\exp2moodle\company.xml"
$path_xml_department = "КоммерческаяИнформация/Классификатор/Подразделения/Подразделение"
$path_xml_worker = "КоммерческаяИнформация/ОрганизационнаяСтруктура/Работники/Работник"
$file.load($path_xml)
$xml_department = $file.SelectNodes($path_xml_department)
$xml_peoples= $file.SelectNodes($path_xml_worker)
$output = @()
$test = @()
foreach ($person in $xml_peoples) {
#$IPphone = ($person.Контакты.Контакт | where {$_.Тип -match "IP"}).Значение
$MailAddress = ($person.Контакты.Контакт | where {$_.Тип -match "Почта"}).Значение
$SecondName = $person.Фамилия
$Name = $person.Имя
$LastName = $person.Отчество
#$FIO = $person.Наименование
$Function = $person.Должность
$Status = $person.ИсторияСостояний.Состояние | where {$_.Значение -eq "Уволен"}
if (!$Status){
$output += [PSCustomObject]@{
#Наименование = $FIO
Фамилия = $SecondName
Имя_Отчество = [String]::Concat($Name," ",$LastName)
Должность = $Function
#Телефон = $IPphone -replace "\D", ""
Почта = $MailAddress
}
}
}
<#foreach ($dept in $xml_department)
{
$Подразделения = $dept.Наименование
$test += [PSCustomObject]@{
Подразделение = $Подразделения
}
}#>
$output | Export-csv -Path "D:\Unloading\employees.csv" -Encoding Default -Delimiter ";" -NoTypeInformation