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.