Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > Общие вопросы Web
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2016, 22:17   #1
uzlprog
 
Регистрация: 07.06.2016
Сообщений: 6
Вопрос Объединить однотипные XML-файлы в один

Вот ни разу не студент уже лет 9, но застрял...

Короче, ситуация: есть очень много (несколько тысяч) однотипных .xml файлов со структурой, как в прикрепленном примере. Структура везде и всегда одна и та же.

Нужно их всех слепить в один полноценный файл.xml Но при этом, удалить из всех файлов в процессе сбора (так чтобы в итоговом не было) некоторые теги. Далее файл должен нормально читаться Exel.

При этом сделать нужно при помощи наиболее универсального (читай - легко редактируемого) средства - то есть как вариант на скрипте CMD, WSH/PoSH, и т.п.


ИЛИ - нужно свести некоторые данные (теги) из всех файлов в одну таблицу (любого читаемого простыми средствами Окон формата).

По дурости своей и ностальгии решил замутить все на обычном CMD, но застрял в процессе: как замутить чтение только части файла, откидывая сразу заголовки:

Код:
<?xml version="1.0" encoding="WINDOWS-1251"?>
-<journal>-
Есть и более простое решение: поместить все в тег <root>, но не уверен, что Exel переварит такой файл.

А как удалить по маске содержимое тега вместе с ним на голом CMD - вообще не знаю.

Решил смотреть в сторону разпарсинга кучи этих xml в таблицу на PowerShell, о в котором я страшный нубище)))

Накурил такой вот код:

Код:
$h = @{}

dir *.xml | Foreach {
	$obj = try {Import-Clixml $_.FullName} catch {$null} 
	foreach($i in $obj) {
		$h["$($i.Computer)"] += ,$i.ProcessName
	}
	$obj = $null
}

foreach ($c in $h.Keys) {
	$h[$c] | Group -NoElement | Select-Object @{n="passdate";e={$c}},@{n="id";e={$_.Name}},Count | 
		Export-CSV -Path D:\testxml.csv -Delimiter "`t" -Encoding UTF8 -NoTypeInformation
}

$h.Clear()
Ну что-то не покатило - ибо как вариант очень вероятный - я натупил...

Во общем прошу помощи в решении! Ибо задача срочная и очень объемная.

P.S.: по возможности с меня пивко)))
Вложения
Тип файла: zip пример.zip (1.7 Кб, 18 просмотров)
uzlprog вне форума Ответить с цитированием
Старый 06.07.2016, 17:46   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

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

как вы используете данные и где? обычно нужно написать две функции. импорт и экспорт, тогда становится без разницы какой файл куда отправлять в ипорт или в экспорт и все здорово объединяется.

Часто ничего писать не надо, так как в любом редакторе уже есть и ипорты и экспорты.

потому и вопрос, где вы взяли кучу этих файлов, в чем работаете.
Alar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединить файлы PDF в один ac1-caesar Microsoft Office Excel 22 15.11.2016 11:03
как объединить 2 group by в один Flashcherry SQL, базы данных 1 18.05.2012 08:48
Объединить файлы в один с выборкой данных serd Microsoft Office Excel 8 21.11.2009 11:35
как в PhotoShop два файла скеить в один pdf файл? Допустим я нарисовал 2 страницы книги и мне их нужно объединить в один pdf N!ckeL Моделирование, изометрия, photoshop, 3d редакторы 2 15.05.2008 19:34
Объединить в один файл asale Microsoft Office Excel 2 12.02.2008 13:18