powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как загрузить xml размером 2GB
6 сообщений из 6, страница 1 из 1
Как загрузить xml размером 2GB
    #39121383
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На Федеральная информационная адресная система http://fias.nalog.ru/Public/DownloadPage.aspx
в архивах, содержащих xml имеется два огромных xml /один почти 2GB, второй 16B/.
Пробывал их просмотреть с помощью текстовых редакторов и Excel - не получилось.
Вот результат:
- в FAR текстовый редактор, что то пытается делать и быстренько дает сообщение, что не хватает памяти;
- notepad++ сразу честно говорит - "размер файла слишком большой";
- MS Excel не открыл

Ну собственно вопрос.
Как загрузить xml размером 2GB?
...
Рейтинг: 0 / 0
Как загрузить xml размером 2GB
    #39121390
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как загрузить xml размером 2GB
    #39121399
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗимарглВладимир2012,

https://msdn.microsoft.com/en-us/library/ff647804.aspx Вывод - "Process large documents in chunks, if possible." /для конкретного случая/
...
Рейтинг: 0 / 0
Как загрузить xml размером 2GB
    #39121403
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир2012,

Не совсем.

Use XmlTextReader to parse large XML documents.

Не нужно грузить файл в память целиком - читай покусочно.
...
Рейтинг: 0 / 0
Как загрузить xml размером 2GB
    #39121418
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗимарглUse XmlTextReader to parse large XML documents.
Судя по
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
The following code fragment shows how to use XmlTextReader to process large XML documents.
while (reader.Read())
{
    switch (reader.NodeType)
    {
      case System.Xml.XmlNodeType.Element :
      {
        if( reader.Name.Equals("patient")
        && reader.GetAttribute("number").Equals("25") )
      {
        doc = new System.Xml.XmlDocument(); 
        XmlNode node = doc.ReadNode( reader );
        doc.AppendChild( node );
      }
      break;
    }
  }
}


можно будет загрузить xml любого размера.
Скорее всего это годится для не замысловатых xml.
Хотя согласно приведенного кода можно /если постараться/ написать код для обработки и "сложных" xml
/но с DOM на порядок удобней/.

PS: Спасибо.

Еще вопрос.

Имеются ли libraries, которые дают возможность работать с xml большого размера типа как XmlTextReader
/на C# знаю (но не профи), но на данный момент мне нужен функционал не использующий .Net/?
...
Рейтинг: 0 / 0
Как загрузить xml размером 2GB
    #39126931
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

А куда вы собираетесь загрузить этот XML? Если в БД, и эта БД - MSSQL, то ищите в MSSQL'ном разделе форума по слову sqlxmlbulkload - там вопросы по работе с ним появляются достаточно часто.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как загрузить xml размером 2GB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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