test namespace examples ejemplo checker xml xpath namespaces

xml - namespace - Seleccionar elemento en un espacio de nombre con XPath



xpath xml (2)

En XPath 2.0 y XQuery 1.0 puede probar contra el prefijo del espacio de nombres usando la función in-scope-prefixes () en un predicado. p.ej

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

Si no puede usar v2, en XPath 1.0 puede usar la función namespace-uri () para probar contra el espacio de nombres en sí. p.ej

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

Quiero seleccionar el elemento superior en un documento que tiene un espacio de nombre dado (prefijo).

Más específicamente: tengo documentos XML que comienzan con / html / body (en el espacio de nombres XHTML) o con uno de varios elementos en un espacio de nombres en particular. De hecho, quiero quitar / html / body y simplemente devolver los contenidos del cuerpo O todo el elemento raíz de espacio de nombres.


La expresión XPath que quiero es:

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

Donde el prefijo "html" se asigna al espacio de nombres XHTML, y el prefijo "foo" se asigna a mi espacio de nombres de destino.