octubre 27, 2006
Por si a alguien le sirve, que a mí me ha traído de cabeza últimamente… Al utilizar expresiones XPath con dom4j, si éstas tienen namespaces (espacios de nombres, xmlns=“xmpp:xxx” …), hay que usar siempre los prefijos o no funcionarán las búsquedas (al contrario que si usamos DOM pelado).
Para hacerlo tenemos que declarar antes los namespaces y luego usar los prefijos asignados:
Map namespaces = new TreeMap(); namespaces.put("x", "http://xmpp.org/namespaces/xxxx"); DocumentFactory.getInstance().setXPathNamespaceURIs(namespaces); Y luego tendremos que prefijar todos los elementos de la búsqueda XPath que estén dentro de ese espacio de nombres: