«правый» как? «правильно» для кого? Как кодер? Как производительность? Какое «право» вы ищете?
Скорее всего, XPath будет самым элегантным:
thing = getPathThing(doc, "/path/to/element");
<repeat 50 times>
Это, вероятно, будет медленным. Это просто нужно делать больше всего.
Метод DOM, возможно, будет немного быстрее. Оба идут по DOM, чтобы найти их элементы. Я уверен, что разница измерима, я не уверен, что это заметно, а не если все выражения XPath предварительно скомпилированы. Оба требуют, чтобы весь документ находился в памяти.
Самый быстрый способ запускает некоторый потоковый синтаксический анализатор (т. Е. SAX), поскольку вы можете захватывать элементы во время их пролета. Однако анализаторы SAX, как правило, ужасно смотрят. У нас есть другие механизмы по какой-то причине, SAX не особенно элегантен. Но это быстро, а память дешевая. Его стоимость памяти зависит от данных, которые вы храните, а не от общих данных полезной нагрузки XML.
Если вы можете «позволить себе это», XPath, скорее всего, будет лучшим выбором из POV, поддерживающего код, иначе я бы спустился и пошел SAX.
Возможно, да, возможно, нет. Вы должны начать принимать некоторые ответы на свои предыдущие вопросы. –
Спасибо. Мне тоже было интересно узнать о предыдущих вопросах. Как я могу «принять» ответ? Не видел ссылку, чтобы принять или закрыть вопросы. – BRZ
Просто нажмите на галочку. –