Схема такая (только меня запаривать если она кривая не надо - чо дали с тем и работаю, не моя схема, я бы так не делал, считаю что АйДи должны быть зашиты в атрибут).
<elements_list xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="СекретнаяСХема">
<uin>некийхэшкод</uin>
<elements>
<element>
<element_id>11111</element_id>
<element_title>Маша и мячик</element_title>
<element_name>Наша Маша громко плачет уронила в речку Мячик.</element_name>
</element>
... тут целая масса нодов
<element>
<element_id>11118</element_id>
<element_title>Саша и сушка</element_title>
<element_name>Шла Саша по шоссе и сосала сушку</element_name>
</element>
</elements>
<timestamp xsi:nil="true" />
</elements_list>
Нужен самый скоростной способ выбрать содержимое ноды element_name у которой нода element_id = 11118.
Т.е. в довольно объемном хмле (порядка 8Мб) нужно быстро выдернуть или весь куст <element> с определенным element_id но еще лучше выдернуть содержимое element_name у которой element_id = 11118
LINQ не пойдет, надо еще быстрее.
Перебор нод я думаю не пойдет, медленно. Если не согласны - аргументируйте.
Рабочему коду или конкретному ответу ЛО.
Примечание:
Регексом читать ХМЛ когда в .Net масса методов для чтения XML структуры? Хотя надо попробовать, что то в этом есть...
strpos + substr? Неа, .Net C# - пхп мимо.
Побайтовое чтение структурированного документа? Вы уверены? ОК, тогда как загнать ХМЛ в массив байтов где каждый element_id будет точно в заданных адресах? Может я и нуб, но для успешного побайтового чтения наверное должна быть четкая адресная структура где каждый набор данных имеет четкий размер. Слабо представляю как слить в массив байтов строки element_name, element_title абсолютно рандомного размера не имеющие предела размера.
Свой алгоритм вычленения, да круто, уже всю бошку сломал...
Дихотомия. Забавно. Мне не надо сортировать и дробить массив мне нужно быстро получить срез массива где в срезе имеется элемент с определенным значением.
Примечание:
" Одноразовый поиск, тогда быстрее линейного поиска врядли что-то можно придумать"
Да одноразовый. Запрос ноды и в ответ из ХМЛ нужно дернуть ноду с запрошенным значением(текст) element_id и в этой же ветке ноду с именем element_name и вывести внутренний текст element_name.
Примечание:
PetSerAl (Сергей Петров)
Да я пока до такого изящного решения не додумался бы...
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.