Возврат элемента с определенным атрибутом JDOM - PullRequest
0 голосов
/ 08 марта 2012

Мне нужна ваша помощь по конкретному фрагменту кода.

У меня есть объект document в jdom.У меня также есть element объект для корня.Теперь я хочу получить конкретный элемент, основанный на значении атрибута.Но чего я хочу избежать, так это отфильтровать весь список детей, чтобы получить только один элемент.Так есть ли какой-то способ фильтрации по значению документа.

Допустим, мое значение атрибута равно '123'

Теперь я хочу элемент, в котором значение 'id' равно '123'

Какой лучший способ сделать это?

С уважением.

Ответы [ 2 ]

3 голосов
/ 08 марта 2012

Я бы использовал для этого XPath . Со следующим выражением: //element[@attribute='value']

2 голосов
/ 08 марта 2012

Если бы я столкнулся с этой проблемой, я бы решил ее одним из двух способов:

1) Если бы мне нужно было только один раз выполнить поиск элементов, чтобы найти элемент с определенным значением атрибута, я бы сделал простой поиск. Преимущество (и недостаток) JDOM заключается в том, что он помещает весь документ в память, поэтому поиск по элементам очень быстрый, даже если в нем много элементов. Даже если вы используете XPath (и я признаю, что незнаком с ним, но предыдущий ответ показался мне поучительным), скорее всего, они будут делать то же самое, поэтому это решение, вероятно, не менее эффективно. В целом, использование готовых решений может избавить вас от необходимости писать код (хотя в этом случае ваш собственный код будет довольно маленьким), но обычно они не более эффективны и зачастую менее эффективны, поскольку вы используете обобщенное решение, которое не специально для ваших нужд.

2) Если бы мне нужно было выполнить несколько поисков, я бы построил HashMap, где ключом было значение атрибута.

Если вы считаете, что какое-либо из этих решений имеет свои достоинства, но у вас есть дополнительные вопросы или вам нужен пример кода, пожалуйста, напишите мне для получения дополнительной информации.

...