Con XSLT / XPath, ¿cómo puedo unir cualquier elemento en el espacio de nombres nulo?

votos
6
<xsl:template match=foo>

coincide con el elemento foo en el espacio de nombres nulo.

<xsl:template match=*>

coincide con cualquier elemento en cualquier espacio de nombres.

Lo intenté:

xmlns:null=
...
<xsl:template match=null:*>

pero es ilegal declarar un prefijo para el espacio de nombres nulo.

Entonces, ¿cómo puedo unir un elemento con cualquier nombre en el espacio de nombres nulo?

Publicado el 09/12/2008 a las 14:59
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
5

Tu podrías intentar:

<xsl:template match='*[namespace-uri() = ""]'>

Si el conjunto de nodos está vacío o no tiene URI de espacio de nombres, la namespace-urifunción devuelve una cadena vacía , que debería lograr lo que desea.

Respondida el 09/12/2008 a las 15:06
fuente por usuario

votos
4

ffpf es correcto.

Para una mayor claridad, recomendaría usar el siguiente patrón de coincidencia:

 ' *[not(namespace-uri() )]'

Respondida el 09/12/2008 a las 16:06
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more