¿Cómo puedo excluir elementos con xsi: nil = “true” de una transformación?

StackOverflow https://stackoverflow.com/questions/2179374

  •  24-09-2019
  •  | 
  •  

Pregunta

Tengo algunos archivos XML que recientemente cambiaron de modo que algunos de los nodos tienen ahora la xsi: nil atributo = "true". Tengo una hoja de estilo XSLT que hace que el XML en HTML para algunos eyeballing rápida de los datos. Actualmente para facilitar las cosas a mí mismo me tira a cabo los espacios de nombres de XML antes de aplicar la hoja de estilo. Eso funcionó bien hasta el la última actualización. Ahora estoy recibiendo un error porque el XSL no sabe cómo manejar el XSL:. Nil = "true"

Me puede actualizar fácilmente el código por lo que un reemplazar / remover en todo el XSL: nil = partidos "true" en el XML antes de transformarlo, pero me preguntaba si es posible cludge la hoja de estilo XSLT por lo que xsi: nil serán ignorados de / no causa fallas de transformación, incluso si no hay espacios de nombres están incluidos en el código XML. Yo prefiero hacer las cosas de esta manera porque puedo hacer el cambio en el servidor de ahora, en la que si tengo que emitir una nueva versión web que tengo que saltar a través de unos aros internos conseguirlo desplegado.

Después de que todo funcione. (Ya sea a través de la eliminación de la XSL: Nil antes o durante la transformación) voy en círculos alrededor de la espalda y averiguar por qué me quita los espacios de nombres originalmente y corrección que

Gracias por la ayuda que me puede dar.

¿Fue útil?

Solución

¿Por qué eliminar los espacios de nombres en el primer lugar? El XSLT le permite controlar lo que los prefijos no deberán ser puestos en la salida, y puede saltarse los xsi:nil muy bien en la hoja de estilo.

Si no hay ninguna declaración prefijo de espacio para el prefijo xsi, el XML no es válido. Así que, o se trata de XML válido o todavía tiene alguna XSI espacio de nombres declaración alguna parte, y podría cambiar el XSLT para saltar esas entradas.

Si lo hace un hallazgo-reemplazar la fuente XML, realmente asegurarse de arreglarlo más tarde (pronto!), Ya que este tipo de cosas va a romper su cuello.

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