|
|
|
Распарсивание XML
|
|||
|---|---|---|---|
|
#18+
Коллеги, помогите, есть туча файлов xml, более 1000 файлов! со структурой типа: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Есть структура этого безобразия по адресу https://www.nalog.ru/opendata/7707329152-rsmp/structure-08012016.xsd Задача загрузить сие в базу данных, как можно быстрее и без тормозов, чем лучше воспользоваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 15:01 |
|
||
|
Распарсивание XML
|
|||
|---|---|---|---|
|
#18+
даже версию Delphi не огласил.. ну ок воспользуйся TXMLDocument ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 15:25 |
|
||
|
Распарсивание XML
|
|||
|---|---|---|---|
|
#18+
Tactical Nuclear Penguin, сори Delphi 2010. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 15:29 |
|
||
|
Распарсивание XML
|
|||
|---|---|---|---|
|
#18+
Вы хотите, чтобы кто-то за вас и структуру базы создал по заданной в xsd схеме? Не знаю таких инструментов, хотя теоретически могли бы и быть, буду рад, если кто укажет. Но боюсь, структуру вам придется писать самому. Оно и надежнее. Обращаю только ваше внимание на атрибуты minOccurs="0" maxOccurs="unbounded", они очень важны для структуры, определяют, надо ли вводить отношения "один ко многим", или достаточно "один к одному". Если структура создана, берете любой парсер, например MSXML или OmniXML, парсите и раскладываете по полочкам в базу. Эти два удобны, потому что поддерживают XPath, код будет много проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 15:32 |
|
||
|
Распарсивание XML
|
|||
|---|---|---|---|
|
#18+
shalamyanskyВы хотите, чтобы кто-то за вас и структуру базы создал по заданной в xsd схеме? Не знаю таких инструментов, хотя теоретически могли бы и быть, буду рад, если кто укажет. Но боюсь, структуру вам придется писать самому. Оно и надежнее. Обращаю только ваше внимание на атрибуты minOccurs="0" maxOccurs="unbounded", они очень важны для структуры, определяют, надо ли вводить отношения "один ко многим", или достаточно "один к одному". Если структура создана, берете любой парсер, например MSXML или OmniXML, парсите и раскладываете по полочкам в базу. Эти два удобны, потому что поддерживают XPath, код будет много проще. Да нет структуру мне не нужно, ИМХО, а вот за инстументы поддерживающие Xpath спасибо! Кстати, а где Вы увидели атрибуты minOccurs="0" maxOccurs="unbounded", что-то не видел? Приведите выдержку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 15:47 |
|
||
|
Распарсивание XML
|
|||
|---|---|---|---|
|
#18+
В xsd, на который вы дали ссылку. Например <xs:element name="СвПрод" minOccurs="0" maxOccurs="unbounded"> означает, что элемент СвПрод в родительском элементе (у меня глаз не хватает посмотреть, кто там родитель) может встречаться неограниченное число раз, и может вообще ни разу. Для нас важно, что более одного раза. Это означает, что структура базы данных должна поддержать соотношение родитель-СвПрод "один ко многим". Что дает как минимум дополнительную таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 15:56 |
|
||
|
Распарсивание XML
|
|||
|---|---|---|---|
|
#18+
Это также означает, что при парсинге этого узла вы должны будете пользоваться функцией SelectNodes, а не SelectSingleMode. Причем в конкретных, взятых вами для примера XML-файлах, вхождение может быть и единичным, но на это ориентироваться нельзя, только на схему. Если, конечно, вы хотите правильно и без потерь провести импорт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 16:05 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39582594&tid=2041353]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
190ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 486ms |

| 0 / 0 |
