Leitura XML em JDOM - pesquisa

Olá pessoal,

Estou utilizando JDOM para ler um arquivo xml, porém não consigo encontrar uma forma de pesquisar um elemento através do seu atributo.
Não queria ter que montar uma lista com os elementos, e percorrer até achar. Queria uma pesquisa instantânea.
Alguém pode ajudar? O XStream pode fazer isso?

		File f = new File("books.xml");
		SAXBuilder sb = new SAXBuilder();
		Document doc = sb.build(f);
		Element root = doc.getRootElement();

		Element element = root.getChild("book"); /* no caso ele retorna o primeiro elemento "book" mas gostaria de encontrar, por exemplo, o book com id=2 */

		Book book = new Book();
		book.setTitle(element.getChildText("title"));
		book.setAuthor(element.getChildText("author"));
<books>
	<book id="1">	         
		<title>JDOM Tutorial</title>
		<author>Deitel</author>
	</book>	
	<book id="2">
		<title>Using XStream</title>
		<author>Freeman</author>
	</book>		
	<book id="3">
		<title>XML and Java</title>
		<author>Martin</author>
	</book>			
</books>

Alguém pode ajudar?

[quote=arthurfd]porém não consigo encontrar uma forma de pesquisar um elemento através do seu atributo.
Não queria ter que montar uma lista com os elementos, e percorrer até achar. Queria uma pesquisa instantânea.
[/quote]

A resposta para isso é XPath. Por exemplo, se quiser achar um elemento , você deve usar uma consulta mais ou menos assim:

//abc[@def=‘fgh’]

http://www.w3schools.com/XPath/default.asp
http://java.sun.com/javase/6/docs/api/javax/xml/xpath/package-summary.html

Resolvido.
Utilizei o XPath e funcionou!

Obrigado!

  File f = new File("books.xml");    
  SAXBuilder sb = new SAXBuilder();    
  Document doc = sb.build(f);    

  Element element = (Element) XPath.selectSingleNode(doc, "//book[@id=2]");

  Book book = new Book();    
  book.setTitle(element.getChildText("title"));    
  book.setAuthor(element.getChildText("author"));