powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Вопрос про преобразование из xml в csv
9 сообщений из 9, страница 1 из 1
Вопрос про преобразование из xml в csv
    #38520883
Фотография Pastic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пишу программу по преобразованию xml-файлов ФИАС в формат csv для дальнейшего использования в СУБД. При этом я столкнулся со следующей проблемой. Я переписываю все атрибуты xml-тэга в строку. Но если при этом количество атрибутов в разных строках отличается, то получает белиберда. Какие подходы обычно применяются для решения этой проблемы?
...
Рейтинг: 0 / 0
Вопрос про преобразование из xml в csv
    #38521269
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько полей должно быть в таблице, столько value-of и нужно писать.
...
Рейтинг: 0 / 0
Вопрос про преобразование из xml в csv
    #38521299
Фотография Pastic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyСколько полей должно быть в таблице, столько value-of и нужно писать.

Что такое value-of?
...
Рейтинг: 0 / 0
Вопрос про преобразование из xml в csv
    #38521305
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда.

Тогда вопрос на засыпку, как называется предмет, который сдаете вы переписываете xml в csv?
...
Рейтинг: 0 / 0
Вопрос про преобразование из xml в csv
    #38521636
Фотография Pastic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyМда.

Тогда вопрос на засыпку, как называется предмет, который сдаете вы переписываете xml в csv?

В ФИАСЕ xml содержит линейные структуры - данные хранятся в атрибутах. Соответственно, я делаю цикл по атрибутам и все их выгружаю в файл:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
static void Xml2Csv(XmlReader xDoc, StreamWriter sw)
        {   while (xDoc.Read())
            {   string s = "";
                if (xDoc.AttributeCount > 0)
                {   for (int j = 0; j < xDoc.AttributeCount; ++j)
                    {   s = s + '"' + xDoc.GetAttribute(j).ToString() + '"';
                        if (j < xDoc.AttributeCount-1) s = s + ',';
                    }
                    if (s != "") sw.WriteLine(s);
                }
            }
            if (xDoc.MoveToContent() != XmlNodeType.None)
               Xml2Csv(xDoc.ReadSubtree(), sw); // рекурсивный вызов
        }
...
Рейтинг: 0 / 0
Вопрос про преобразование из xml в csv
    #38521728
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Замените цикл по атрибутам лесенкой с поименным их вызовом:

xDoc.GetAttribute('attr1')
xDoc.GetAttribute('attr2')
...
...
Рейтинг: 0 / 0
Вопрос про преобразование из xml в csv
    #38521737
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще, если ваша субд это MSSQL, то конвертирование в csv не нужно, скуль в состоянии делать селекты из xml-текстов.
...
Рейтинг: 0 / 0
Вопрос про преобразование из xml в csv
    #38521780
Фотография Pastic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyА вообще, если ваша субд это MSSQL, то конвертирование в csv не нужно, скуль в состоянии делать селекты из xml-текстов.

У меня Oracle.
...
Рейтинг: 0 / 0
Вопрос про преобразование из xml в csv
    #38521793
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Вопрос про преобразование из xml в csv
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]