Soy un programador experimentado, pero un principiante con XSLT y lo encuentro bastante desconcertante. Me disculpo si esta es una pregunta que se ha hecho antes, pero estoy tan frustrado con XSLT que ni siquiera estoy seguro de qué buscar ...seleccionando uno de varios elementos que difieren en el atributo
Tengo un problema que si un determinado elemento XML aparece solo una vez, quiero que se emita su contenido, pero si ocurre más de una vez, solo quiero el contenido de aquellos que tienen cierto atributo.
Por ejemplo, supongamos que tengo un archivo XML (lo llaman "archivo 1") que contiene
<food>
<snack>Chips</snack>
<snack type="nuts">Peanuts</snack>
</food>
y otro archivo XML ("archivo 2") que contiene
<food>
<snack>Cheese puffs</snack>
</food>
I Necesito un XSLT que muestre solo "Cacahuetes" (pero no "Chips") al procesar el archivo 1, pero sigue produciendo "Chispas de queso" para el archivo 2 (es decir, no puedo seleccionar solo aquellos elementos que tienen un atributo "tipo", Eso sería demasiado fácil).
Ésta es probablemente simple, pero estoy atascado ...
Buena pregunta, +1. Vea mi respuesta para una solución completa, breve y fácil basada en los patrones de diseño XSLT más fundamentales y potentes: la anulación de la regla de identidad. Explicación también se proporciona. –