Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913

Как разбить файл XML на 2 или несколько

17.05.2012, 14:37. Показов 4764. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста разбить 1 фаил XML на несколько таким образом, чтобы 1 столбец был обшим!Т.е. как бы 1 длинную таблицу разбить на 2 маленькие.Спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.05.2012, 14:37
Ответы с готовыми решениями:

Как разбить файл на несколько?
Здравствуйте! Пишу программу с вкладочками. В разных вкладочках разная информация, и было бы славно, если бы одной вкладке...

Как разбить большой xml-файл на более мелкие?
Здравствуйте, подскажите программу или способ который поможет разбить XML (1.5Гб) на более мелкие - хотя бы по 30-50Мб

Как разбить файл логики формы на несколько файлов?
С обычными классами всё понятно, partial... А когда создаю ещё один класс partial от формы он мне создаёт отдельную форму. В...

9
 Аватар для SalterOk
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
17.05.2012, 15:14
для начала уточни что за столбец и таблица имеется в виду
каким образом XML представляется в таком виде? - неплохо бы на конкретном примере
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
17.05.2012, 15:23  [ТС]
Вот xml фаил .Мне надо , чтобы было из него несколько xml файлов, в которых 1 столбец был 1 и тот же - время-DateTime, а данные , по определенному количеству столбцов(сам xml -это таблица)
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?xml version="1.0" standalone="yes"?>
<_x0033_450>
  <Report_3450>
    <Date_Time>16-May-12 12:01:00 AM</Date_Time>
    <PLC_1>1.000</PLC_1>
    <Date_2>1.000</Date_2>
    <Day_3>11.000</Day_3>
    <comstat_4>1.000</comstat_4>
    <D2_5>1.000</D2_5>
    <D2_6>1.000</D2_6>
    <D4_7>1.000</D4_7>
    <D5_8>1.000</D5_8>
    <D6_9>1.000</D6_9>
    <D7_10>1.000</D7_10>
    <D8_11>1.000</D8_11>
    <O1_12>1.000</O1_12>
    <O2_13>1.000</O2_13>
    <A1_14>1.000</A1_14>
    <A2_15>1.000</A2_15>
    <A3_16>1.000</A3_16>
    <A4_17>1.000</A4_17>
    <A5_18>11.000</A5_18>
    <A6_19>1.000</A6_19>
    <Volt_20>11.000</Volt_20>
    <DN_21>1.000</DN_21>
    <C1_46>111.000</C1_46>
    <C3_48>11.000</C3_48>
    <C8_53>1111.000</C8_53>
  </Report_3450>
  <Report_3450>
    <Date_Time>16-May-12 1:10:00 AM</Date_Time>
    <PLC_1>199999.990</PLC_1>
    <Date_2>212.000</Date_2>
    <Day_3>12.000</Day_3>
    <comstat_4>21.000</comstat_4>
    <D2_5>65.000</D2_5>
    <D2_6>212.000</D2_6>
    <D4_7>12.000</D4_7>
    <D5_8>1212.000</D5_8>
  </Report_3450>
  <Report_3450>
    <Date_Time>16-May-12 5:01:00 AM</Date_Time>
    <PLC_1>56.000</PLC_1>
    <Date_2>56.000</Date_2>
    <Day_3>56.000</Day_3>
    <comstat_4>56.000</comstat_4>
    <D2_5>56.000</D2_5>
    <D2_6>56.000</D2_6>
    <D4_7>56.000</D4_7>
    <D5_8>1111111.000</D5_8>
  </Report_3450>
</_x0033_450>
0
 Аватар для SalterOk
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
17.05.2012, 15:29
то есть что-то вроде этого?
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?xml version="1.0" standalone="yes"?>
<_x0033_450>
  <Report_3450>
    <Date_Time>16-May-12 12:01:00 AM</Date_Time>
    <PLC_1>1.000</PLC_1>
    <Date_2>1.000</Date_2>
    <Day_3>11.000</Day_3>
    <comstat_4>1.000</comstat_4>
    <D2_5>1.000</D2_5>
    <D2_6>1.000</D2_6>
    <D4_7>1.000</D4_7>
    <D5_8>1.000</D5_8>
    <D6_9>1.000</D6_9>
    <D7_10>1.000</D7_10>
    <D8_11>1.000</D8_11>
    <O1_12>1.000</O1_12>
    <O2_13>1.000</O2_13>
    <A1_14>1.000</A1_14>
    <A2_15>1.000</A2_15>
    <A3_16>1.000</A3_16>
    <A4_17>1.000</A4_17>
    <A5_18>11.000</A5_18>
    <A6_19>1.000</A6_19>
    <Volt_20>11.000</Volt_20>
    <DN_21>1.000</DN_21>
    <C1_46>111.000</C1_46>
    <C3_48>11.000</C3_48>
    <C8_53>1111.000</C8_53>
  </Report_3450>
</_x0033_450>
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" standalone="yes"?>
<_x0033_450>  
  <Report_3450>
    <Date_Time>16-May-12 1:10:00 AM</Date_Time>
    <PLC_1>199999.990</PLC_1>
    <Date_2>212.000</Date_2>
    <Day_3>12.000</Day_3>
    <comstat_4>21.000</comstat_4>
    <D2_5>65.000</D2_5>
    <D2_6>212.000</D2_6>
    <D4_7>12.000</D4_7>
    <D5_8>1212.000</D5_8>
  </Report_3450>
</_x0033_450>
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" standalone="yes"?>
<_x0033_450>  
  <Report_3450>
    <Date_Time>16-May-12 5:01:00 AM</Date_Time>
    <PLC_1>56.000</PLC_1>
    <Date_2>56.000</Date_2>
    <Day_3>56.000</Day_3>
    <comstat_4>56.000</comstat_4>
    <D2_5>56.000</D2_5>
    <D2_6>56.000</D2_6>
    <D4_7>56.000</D4_7>
    <D5_8>1111111.000</D5_8>
  </Report_3450>
</_x0033_450>
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
17.05.2012, 15:44  [ТС]
Нет. Надо, чтобы в 1 таблице(Япотом преврашаю xml в pdf таблицу) были например столбцы
Date_Time PLC_1 Date_2 Day_3

а во 2 таблице

Date_Time comstat_4 D2_5 D2_6 D4_7 D5_8
С данными, конечно

Добавлено через 56 секунд
Т.е. разбиение не по строкам , а по столбцам
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
20.05.2012, 09:17  [ТС]
Вопрос остается в силе! Help!!!!!!
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
20.05.2012, 09:23
iva_a, покажите какие файлы должны получиться из исходного.
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
20.05.2012, 10:20  [ТС]
Дело в том,что в конечном итоге мне нужно получить удобочитаемые таблицу в формате PDF.Т.е., чтобы данные вмешались на лист. PDF я получаю из XML. Сначала получаю большую таблицу в XML
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?xml version="1.0" standalone="yes"?>
<_x0033_450>
  <Report_3450>
    <Date_Time>16-May-12 12:01:00 AM</Date_Time>
    <PLC_1>1.000</PLC_1>
    <Date_2>1.000</Date_2>
    <Day_3>11.000</Day_3>
    <comstat_4>1.000</comstat_4>
    <D2_5>1.000</D2_5>
    <D2_6>1.000</D2_6>
    <D4_7>1.000</D4_7>
    <D5_8>1.000</D5_8>
    <D6_9>1.000</D6_9>
    <D7_10>1.000</D7_10>
    <D8_11>1.000</D8_11>
    <O1_12>1.000</O1_12>
    <O2_13>1.000</O2_13>
    <A1_14>1.000</A1_14>
    <A2_15>1.000</A2_15>
    <A3_16>1.000</A3_16>
    <A4_17>1.000</A4_17>
    <A5_18>11.000</A5_18>
    <A6_19>1.000</A6_19>
    <Volt_20>11.000</Volt_20>
    <DN_21>1.000</DN_21>
    <C1_46>111.000</C1_46>
    <C3_48>11.000</C3_48>
    <C8_53>1111.000</C8_53>
  </Report_3450>
  <Report_3450>
    <Date_Time>16-May-12 1:10:00 AM</Date_Time>
    <PLC_1>199999.990</PLC_1>
    <Date_2>212.000</Date_2>
    <Day_3>12.000</Day_3>
    <comstat_4>21.000</comstat_4>
    <D2_5>65.000</D2_5>
    <D2_6>212.000</D2_6>
    <D4_7>12.000</D4_7>
    <D5_8>1212.000</D5_8>
  </Report_3450>
  <Report_3450>
    <Date_Time>16-May-12 5:01:00 AM</Date_Time>
    <PLC_1>56.000</PLC_1>
    <Date_2>56.000</Date_2>
    <Day_3>56.000</Day_3>
    <comstat_4>56.000</comstat_4>
    <D2_5>56.000</D2_5>
    <D2_6>56.000</D2_6>
    <D4_7>56.000</D4_7>
    <D5_8>1111111.000</D5_8>
  </Report_3450>
</_x0033_450>
Потом пытаюсь разделить на 2 (а может и несколько, не знаю пока) XML файлов
Например, такои
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version="1.0" standalone="yes"?>
<_x0033_450>
  <Report_3450>
    <Date_Time>16-May-12 12:01:00 AM</Date_Time>
    <PLC_1>1.000</PLC_1>
    <Date_2>1.000</Date_2>
    <Day_3>11.000</Day_3>
    <comstat_4>1.000</comstat_4>
    <D2_5>1.000</D2_5>
    <D2_6>1.000</D2_6>
    <D4_7>1.000</D4_7>
    <D5_8>1.000</D5_8>
    <D6_9>1.000</D6_9>
    <D7_10>1.000</D7_10>
    <D8_11>1.000</D8_11>
  </Report_3450>
  <Report_3450>
    <Date_Time>16-May-12 1:10:00 AM</Date_Time>
    <PLC_1>199999.990</PLC_1>
    <Date_2>212.000</Date_2>
    <Day_3>12.000</Day_3>
    <comstat_4>21.000</comstat_4>
    <D2_5>65.000</D2_5>
    <D2_6>212.000</D2_6>
    <D4_7>12.000</D4_7>
    <D5_8>1212.000</D5_8>
  </Report_3450>
  <Report_3450>
    <Date_Time>16-May-12 5:01:00 AM</Date_Time>
    <PLC_1>56.000</PLC_1>
    <Date_2>56.000</Date_2>
    <Day_3>56.000</Day_3>
    <comstat_4>56.000</comstat_4>
    <D2_5>56.000</D2_5>
    <D2_6>56.000</D2_6>
    <D4_7>56.000</D4_7>
    <D5_8>1111111.000</D5_8>
  </Report_3450>
</_x0033_450>
И такои
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" standalone="yes"?>
<_x0033_450>
  <Report_3450>
    <Date_Time>16-May-12 12:01:00 AM</Date_Time>
    <O1_12>1.000</O1_12>
    <O2_13>1.000</O2_13>
    <A1_14>1.000</A1_14>
    <A2_15>1.000</A2_15>
    <A3_16>1.000</A3_16>
    <A4_17>1.000</A4_17>
    <A5_18>11.000</A5_18>
    <A6_19>1.000</A6_19>
    <Volt_20>11.000</Volt_20>
    <DN_21>1.000</DN_21>
    <C1_46>111.000</C1_46>
    <C3_48>11.000</C3_48>
    <C8_53>1111.000</C8_53>
  </Report_3450>
</_x0033_450>
Все юто для того, чтобы в результате получить не бесконечную таблицу, которую невозможно нормально читать в PDF, а 2(или несколько) таблиц, которые помешаются на страницу - см attach
V attach - 1 таблица не помешается на лист, 2 и 3 - должны помещаться
Вложения
Тип файла: rar Tabl.rar (382.8 Кб, 9 просмотров)
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
20.05.2012, 10:34
А в чем затруднение?
0
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
22.05.2012, 08:56  [ТС]
Петррр, Я Вас не поняла. Я не знаю как разбить 1 xml на несколько, если подскажите или посоветуете что почитать, буду очень признательна

Добавлено через 2 часа 53 минуты
Снова прошу помощи!
Помогите найти ошибку в коде. Код должен получить несколько таблиц с разными данными, но общим 1 столбцом - время. А на деле 5 раз вывожу 1 и ту же таблицу. Дебаг не помог пока. Понимаю, что где-то в циклаж запуталась, но никак не могу найти баг!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 DataSet ds = new DataSet(sUnitID);//sUnit - string , просто название папки
                   if (channelname.Count > 8)
                    {
                        for (int c = 0; c < (channelname.Count / 8); c++)//channelname-имена столбцов
                        {
                            DataTable mytable2 = ds.Tables.Add("Report_" + sUnitID + "_" + c.ToString());
                            DataColumn mycolumn2 = mytable2.Columns.Add("Date_Time", typeof(String));
 
                            for (int i = c; i < c+ 8; i++)
                            {
                                Console.WriteLine(channelname[i]);
                                mycolumn2 = mytable2.Columns.Add(channelname[i].Trim().Replace(" ", string.Empty), typeof(String));
                            }
 
                            SqlDataReader drXML2 = com.ExecuteReader();
 
                            while (drXML2.Read())
                            {
                                DataRow newrow2 = ds.Tables["Report_" + sUnitID + "_" + c.ToString()].NewRow();
                                newrow2["Date_Time"] = drXML2[0]; // 1 column - Date_Time
                                for (int k = c; k < c+8; k++)
                                {
                                    newrow2[channelname[k].Trim().Replace(" ", string.Empty)] = drXML2[k + 1];
                                }
                                ds.Tables["Report_" + sUnitID + "_" + c.ToString()].Rows.Add(newrow2);
                            }
 
                            drXML2.Close();
 
                        }
                    }
                   if (columnindex.Count > 8)//хочу, чтобы в таблицах было не больше 8 столбцов
                    {
                        for (int k = 0; k < (columnindex.Count / 8); k++)
                        {
                            for (int i = k; i < k + 8; i++)
                            {
 
                                if (ds.Tables["Report_" + sUnitID + "_" + i.ToString()].Rows.Count > 0)
                                    
                                    ds.WriteXml(tempdir + companyid + @"\" + sUnitID + "_" + i.ToString() + ".xml");   
                            }
                        }
                    }
Добавлено через 20 часов 22 минуты
Все еще страдаю

Добавлено через 22 часа 58 минут
Все получилось. Всем- спасибо за участие
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.05.2012, 08:56
Помогаю со студенческими работами здесь

Text в XML, разбить одну строку на несколько
Приветствую, есть следующая проблема. Имеется xml файл, который возвращается со всем текстом в одну строку. Можно его как-то через CMD...

Как сделать так чтобы XML файл или txt файл создавался при запуске программы?
У меня имеется XML файл в котором около 300 строчек кода. Мне нужно что бы при запуске программы он сам создавался, даже если перед...

Разбить текстовый файл на несколько
Добрый вечер! Имеется файл текстовый очень большого размера. Его надо разбить на несколько маленьких, допустим по 20 страниц. Я так...

Разбить файл на несколько #include
Простой код. Рисует зеленую точку (квадрат) на черном фоне. #include &quot;gl/glut.h&quot; void RenderScene(void) { ...

Разбить текстовый файл на несколько файлов
Как разбить исходный текстовый файл на несколько файлов при заданом условии Пример входного файла... sobitia.txt 25-12-2009,11,512...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru