powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как оптимизировать код чтобы читать Xml файл.
10 сообщений из 10, страница 1 из 1
Как оптимизировать код чтобы читать Xml файл.
    #38835407
Dmitriy78781
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть код для чтения Xml файлами сам файл нужно его оптимизировать.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
FileStream fs = new FileStream("D:\\TestXml\\TestXml\\rocid.xml",FileMode.Open,FileAccess.Read,FileShare.Read);
            XmlDocument XmlDoc = new XmlDocument();
            XmlDoc.Load(fs);
            ArrayList Country = new ArrayList();
            string temp = "";
            string temp1 = "";
            for (int i = 0; i < XmlDoc.DocumentElement.ChildNodes.Count; i++)
            {

                if (XmlDoc.DocumentElement.ChildNodes[i].Name.ToString() == "country")
                {
                    //temp1 = XmlDoc.DocumentElement.ChildNodes[i].InnerText;
                    
                }

                XmlDoc.DocumentElement.GetElementsByTagName("country")[i].InnerText;
            }
            
            fs.Close();



Код: 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.
<?xml version="1.0" encoding="windows-1251" ?>
<rocid>
  <!-- таблица  city -->
    <city>
        <city_id>4400</city_id>
        <country_id>3159</country_id>
        <region_id>4312</region_id>
        <name>Москва</name>
    </city>
    <city>
        <city_id>4313</city_id>
        <country_id>3159</country_id>
        <region_id>4312</region_id>
        <name>Абрамцево</name>
    </city>
    <city>
        <city_id>4314</city_id>
        <country_id>3159</country_id>
        <region_id>4312</region_id>
        <name>Алабино</name>
    </city>

<country>
        <country_id>3159</country_id>
        <city_id>0</city_id>
        <name>Россия</name>
    </country>
    <country>
        <country_id>4</country_id>
        <city_id>0</city_id>
        <name>Австралия</name>
    </country>
    <country>
        <country_id>63</country_id>
        <city_id>0</city_id>
        <name>Австрия</name>
    </country>
 <region>
        <region_id>11354</region_id>
        <country_id>11060</country_id>
        <city_id>0</city_id>
        <name>Ямагути</name>
    </region>
    <region>
        <region_id>11363</region_id>
        <country_id>11060</country_id>
        <city_id>0</city_id>
        <name>Яманаси</name>
    </region>
</rocid>
...
Рейтинг: 0 / 0
Как оптимизировать код чтобы читать Xml файл.
    #38835421
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitriy78781,

оптимизировать по какому параметру: читабельность (понятность), краткость кода, объём используемой памяти, скорость выполнения?
...
Рейтинг: 0 / 0
Как оптимизировать код чтобы читать Xml файл.
    #38835424
Dmitriy78781
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По скорости выполнения.
...
Рейтинг: 0 / 0
Как оптимизировать код чтобы читать Xml файл.
    #38835429
Dmitriy78781
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно быстро вывести список стран в ListBox по этому нужно оптимизировать код.
...
Рейтинг: 0 / 0
Как оптимизировать код чтобы читать Xml файл.
    #38835468
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitriy78781По скорости выполнения.
Не использовать ArrayList. Использовать List<T>.

Не использовать XmlDocument. Если есть возможность, использовать LinqToXml - XDocument/XElement. Если такой возможности нет (старая версия фреймворка), тогда использовать XPathDocument + XPathNavigator, но это только в том случае, когда не нужно менять документ.

Не использовать GetElementsByTagName - работает медленно.
Следует либо итерироваться по коллекции узлов (как в данном коде), либо использовать свойства типа FirstChild, NextSibling.

Не следует использовать XPath - очень медленно.

И вообще, каков размер документа, что нужно оптимизировать работу с ним? Неужто миллионы записей?

Самый быстрый способ - использовать потоковый XmlReader.
...
Рейтинг: 0 / 0
Как оптимизировать код чтобы читать Xml файл.
    #38835481
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitriy78781,
так ли уж критична скорость выполнения с учетом передачи по сети, если используется очень часто кешируйте выборку
на худой конец при старте приложения парсить в кеш, имхо не отломится - подождут
...
Рейтинг: 0 / 0
Как оптимизировать код чтобы читать Xml файл.
    #38835547
Dmitriy78781
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я создаю сайт где для регистрации будет выбираться страна, область, город.
...
Рейтинг: 0 / 0
Как оптимизировать код чтобы читать Xml файл.
    #38835559
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое быстрое чтение файлов - через XmlReader , быстрее прочитать не получится. Вот тут проводится тест чтения xml размером 1.4Gb, код отрабатывает моментально.
...
Рейтинг: 0 / 0
Как оптимизировать код чтобы читать Xml файл.
    #38835590
Calabonga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы использвал сериализацию, хотя правильнее сказать десериализацию XmlSerializer , который, кстати, использует XmlReader.
...
Рейтинг: 0 / 0
Как оптимизировать код чтобы читать Xml файл.
    #38835811
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСамое быстрое чтение файлов - через XmlReader , быстрее прочитать не получится. Вот тут проводится тест чтения xml размером 1.4Gb, код отрабатывает моментально.
На гигабайтных файлах работа в XmlReader/XmlWriter единственный возможный вариант.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как оптимизировать код чтобы читать Xml файл.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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