Pregunta

Quiero seleccionar el elemento superior en un documento que tiene un espacio de nombres determinado (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 particular.Efectivamente quiero eliminar /html/body y simplemente devolver el contenido del cuerpo O todo el elemento raíz con espacio de nombres.

¿Fue útil?

Solución

En XPath 2.0 y XQuery 1.0 puede realizar pruebas con el prefijo del espacio de nombres utilizando el prefijos dentro del alcance () funcionar en un predicado.p.ej.

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

Si no puede usar v2, en XPath 1.0 puede usar el espacio de nombres-uri() función para probar con el propio espacio de nombres.p.ej.

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

Otros consejos

La expresión XPath que quiero es:

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

Donde el prefijo "html" está asignado al espacio de nombres XHTML y el prefijo "foo" está asignado a mi espacio de nombres de destino.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top