Question

Je souhaite sélectionner l'élément le plus haut dans un document ayant un espace de nom donné (préfixe).

Plus précisément: j'ai des documents XML qui commencent par / html / body (dans l’espace de noms XHTML) ou par l’un des éléments d’un espace de noms particulier. Je veux effectivement effacer / html / body et simplement renvoyer le contenu du corps OU l’élément racine entier namespaced.

Était-ce utile?

La solution

Dans XPath 2.0 et XQuery 1.0, vous pouvez tester le préfixe d'espace de nom à l'aide du in-scope-prefixes () fonctionne dans un prédicat. par exemple

//*[in-scope-prefixes(.)='html']

Si vous ne pouvez pas utiliser la version 2, dans XPath 1.0, vous pouvez utiliser le namespace-uri () pour tester l’espace de nom lui-même. par exemple

//*[namespace-uri()='http://www.w3c.org/1999/xhtml']

Autres conseils

L'expression XPath que je souhaite est la suivante:

/html:html/html:body/node()|/foo:*

Où le & html " le préfixe est mappé sur l’espace de noms XHTML, et le "foo" Le préfixe est mappé sur mon espace de noms cible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top