XPath et la gestion des espaces de noms

22/10/2004

Lors de la formulation d’une requête XPath, chaque espace de noms doit être explicitement nommé. Chaque élément doit pouvoir être préfixé. Cela ne pose pas réellement de problème lorsque le préfixe est défini dans le document original (par exemple, xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" définit l’espace de noms RDF et lui associe le préfixe rdf), car classiquement, c’est ce même préfixe qui est utilisé dans une expression XPath (ce n’est pas obligatoire, puisqu’en termes d’espaces de noms, seule l’URI importe, le préfixe n’est qu’un alias).

Par contre, pour les espaces de noms par défaut (qui ne possèdent pas de préfixe), il faut leur en attribuer un. Ainsi, dans les programmes de cet article, tous les espaces de noms par défaut commenceront par "dns" suivi d’un entier incrémenté automatiquement. Le préfixe dns1 correspond alors à l’URI http://purl.org/rss/1.0/, qui figure dans le document XML original en tant qu’espace de noms par défaut. les éléments présents dans cet espace de noms par défaut dans le fichier original, tels que <title> ou <description> seront accessibles dans l’expression XPath via <dns1:title> ou <dns1:description>.