Первое, что вам нужно сделать, это решить, какие данные вы на самом деле собираетесь искать. Вы говорите «внутри тегов и фактических данных» - значит ли это, что вы будете выполнять поиск по ключевому слову по имени элемента? Или имя элемента и содержание внутри него?
В зависимости от сложности ваших поисковых запросов вы, вероятно, захотите обратиться к реальной поисковой системе, например Lucene . Однако я скажу, что перед тем, как вы сделаете этот шаг, вам нужно много подумать о том, как вы планируете искать, чтобы создать соответствующий индекс.
Если ваши требования к поиску более просты, вы можете загрузить документы в DOM и использовать XPath . Я бы предложил попробовать это перед тем, как переехать в Lucene.
Вам не нужен Ксалан; JDK поставляется с анализаторами XML и оценщиком XPath. Я написал пару статей об их использовании: ( парсинг ), ( xpath ).