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

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

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

Не совсем.

Use XmlTextReader to parse large XML documents.

Не нужно грузить файл в память целиком - читай покусочно.
...
Рейтинг: 0 / 0
05.12.2015, 18:25
    #39121418
Владимир2012
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить xml размером 2GB
Зимаргл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
14.12.2015, 06:17
    #39126931
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как загрузить xml размером 2GB
Владимир2012,

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


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