Если вы загружаете его в память, на самом деле не имеет значения, какую форму принимает XML - я бы посоветовал облегчить чтение или запись вручную. Когда вы загружаете его в память, , а затем , вы должны преобразовать его в соответствующую структуру данных. (Точный характер структуры данных будет зависеть от точного характера требований.)
РЕДАКТИРОВАТЬ: Это противостоять аргументам, высказанным Димитром в комментариях:
Я не уверен, что вы подумали, что я предлагал, чтобы люди внедрили свою собственную хэш-таблицу - я точно не был. Просто сохраните прямую хеш-таблицу или, возможно, MultiMap для каждого столбца, который вы хотите использовать в качестве ключа. Разработчики знают, как использовать хеш-таблицы.
Что касается эффективности времени выполнения, которая, по вашему мнению, будет более эффективной:
- Вы создаете некоторый XSLT (и имейте в виду, что является чужой территорией, по крайней мере, относительно говоря, для большинства разработчиков)
- XSLT-движок анализирует его. Этого шага можно избежать, если вы используете библиотеку XSLT, которая позволяет просто параметризовать существующий запрос. Тем не менее, у вас есть некоторая дополнительная работа.
- Движок XSLT обращается к хеш-таблицам (по крайней мере, вы надеетесь) и возвращает узел
- Вы конвертируете узел в более полезную структуру данных
Или:
- Вы просматриваете соответствующие записи в своей хеш-таблице на основе заданных вами ключей, переходя прямо к полезной структуре данных
Думаю, я бы лично доверял второму. Использование XSLT здесь похоже на использование отвертки для нанесения ударов по гвоздю ...