Espaço de nome XML padrão, JDOM e XPath
Eu quero usar o JDOM para ler um arquivo XML e, em seguida, usar o XPath para extrair dados do documento JDOM. Ele cria o objeto Document, mas quando uso o XPath para consultar uma lista de elementos no documento, não recebo nad
documento @My XML possui um espaço para nome padrão definido no elemento raiz. O engraçado é que, quando removo o espaço para nome padrão, ele executa com êxito a consulta XPath e retorna os elementos que eu quero. O que mais devo fazer para que minha consulta XPath retorne resultados?
XML:
<?xml version="1.0" encoding="UTF-8"?>
<collection xmlns="http://www.foo.com">
<dvd id="A">
<title>Lord of the Rings: The Fellowship of the Ring</title>
<length>178</length>
<actor>Ian Holm</actor>
<actor>Elijah Wood</actor>
<actor>Ian McKellen</actor>
</dvd>
<dvd id="B">
<title>The Matrix</title>
<length>136</length>
<actor>Keanu Reeves</actor>
<actor>Laurence Fishburne</actor>
</dvd>
</collection>
Java
public static void main(String args[]) throws Exception {
SAXBuilder builder = new SAXBuilder();
Document d = builder.build("xpath.xml");
XPath xpath = XPath.newInstance("collection/dvd");
xpath.addNamespace(d.getRootElement().getNamespace());
System.out.println(xpath.selectNodes(d));
}