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

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

Ответить
Настройки темы
PowerShell - [решено] Поиск текста в xml и запись в файл.

Новый участник


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

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


Добрый вечер, подскажите пожалуйста, может быть уже есть готовое решение, задача следующая.
Есть каталог на "B:\20150415\" в котором содержится 20+ файлов *.xml и др. файлов (имена файлов уникальные).
Содержимое каждого xml-файла следующее:
Скрытый текст
HTML код: Выделить весь код
<?xml version="1.0"?> -<Package> -<HEADER> <Package_id>1</Package_id> <From>Older</From> </HEADER> -<OBJECTS> -<OBJECT name="Fix"> -<PROPERTIES> <PROPERTY name="ID">1</PROPERTY> <PROPERTY name="FIO">Andrew</PROPERTY> </PROPERTIES> </OBJECT> </OBJECTS> </Package>


Необходимо обойти все файлы *.xml каталога "B:\20150415\" и получить значения из каждого файла <PROPERTY name="ID"> и <PROPERTY name="FIO">, записав его на следующую строку созданного файла (csv или xls).
Где первое значение из примера:
1;Andrew
105;Andy
итд

Отправлено: 22:15, 15-04-2015

 

Ветеран


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

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


voleja,
Код: Выделить весь код
get-childitem 'B:\20150415' *.xml | foreach {

    [xml] $xml = get-content $_.fullname

    $id = ($xml.package.objects.object.properties.property | ? { $_.name -eq 'id' }).'#text'
    $fio = ($xml.package.objects.object.properties.property | ? { $_.name -eq 'fio' }).'#text'

    add-content 1.csv "$id;$fio"  
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:56, 15-04-2015 | #2



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

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


Ветеран


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

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


Код: Выделить весь код
Select-Xml -path *.xml  "//PROPERTIES"  | Foreach {$_.Node.Property."#text" -join ","} | Out-File resilt.csv

Отправлено: 23:02, 15-04-2015 | #3


Ветеран


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

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


Для полноты коллекции:
Код: Выделить весь код
gci 'B:\20150415\*.xml'|%{([xml](gc $_.fullname)).SelectNodes('//PROPERTY').InnerText -join ';'}|Out-File 'example.csv'
.

Отправлено: 23:25, 15-04-2015 | #4


Новый участник


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

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


спасибо, но
Цитата Kazun:
HTML код: Выделить весь код
Select-Xml -path *.xml "//PROPERTIES" | Foreach {$_.Node.Property."#text" -join ","} | Out-File resilt.csv

»
и
Цитата Georgio:
HTML код: Выделить весь код
gci 'B:\20150415\*.xml'|%{([xml](gc $_.fullname)).SelectNodes('//PROPERTY').InnerText -join ';'}|Out-File 'example.csv'

»
не решают задачи, т. к выгружают не по формату, а выгружают все - весь текст, можно их привести к поиску и записи в файл только значений в секциях <PROPERTY name="ID"> и <PROPERTY name="FIO"> и записать в csv в виде
1;Andrew
105;Andy
найденные значения <PROPERTY name="ID"> и <PROPERTY name="FIO"> из каждого файла в одной строке с разделителем, следующие значения, найденные в другом файле - переход на др. строку?

Отправлено: 06:09, 16-04-2015 | #5


Ветеран


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

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


Цитата voleja:
не решают задачи, т. к выгружают не по формату, а выгружают все - весь текст, можно их привести к поиску и записи в файл только значений в секциях <PROPERTY name="ID"> и <PROPERTY name="FIO"> и записать в csv в виде
1;Andrew
105;Andy »

Обновите PowerShell до версии 4.0. Другие версии я не поддерживаю.

Отправлено: 11:29, 16-04-2015 | #6



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Поиск строк в файле и запись в новый файл vision-d Скриптовые языки администрирования Windows 17 06-10-2016 09:14
CMD/BAT - [решено] Поиск файла и запись результат в файл fonser Скриптовые языки администрирования Windows 7 07-04-2014 16:51
CMD/BAT - [решено] поиск по xml firstarey Скриптовые языки администрирования Windows 14 04-04-2013 17:11
VBS/WSH/JS - [решено] VBS, поиск во всех файлах заданной папки и запись в файл. vlad20 Скриптовые языки администрирования Windows 5 31-07-2012 01:52
CMD/BAT - поиск строк по шаблону и запись в отдельный файл AVTS Скриптовые языки администрирования Windows 4 13-07-2012 00:51




 
Переход