XSL - Problema con variables

 
Vista:

Problema con variables

Publicado por Luis (1 intervención) el 18/06/2007 15:48:30
Tengo un documento xml como este:

<Component id="idaio1" name="idaio1">
<control id="idaio2" name="idaio2" Type="application" />
<control id="idaio3" name="idaio3" Type="application" />
<control id="idaio3" name="idaio3" Type="interaction" />
</Component>

Necesito contar el número de elementos control que tienen su atributo tipo=application. Lo intenté con esto pero no funciona:

<xsl:variable name="ncoin" as="xs:integer" select="count(./control/@Type=application)"/>

Por favor, alguien puede ayudarme?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Contar elementos control con atributo Type igual a "application"

Publicado por Alejandro (227 intervenciones) el 06/07/2023 16:32:01
Puedes utilizar la función `count()` en combinación con un predicado para contar los elementos `control` que tienen su atributo `Type` igual a "application". Aquí tienes la solución para tu consulta:

1
<xsl:variable name="ncoin" as="xs:integer" select="count(./control[@Type='application'])"/>

En esta solución, se utiliza el predicado `[...]` para filtrar los elementos `control` que tienen el atributo `Type` igual a "application". La función `count()` cuenta los elementos resultantes y almacena el resultado en la variable `$ncoin`.

Recuerda que en XPath, los valores literales deben estar entre comillas simples o dobles. Por lo tanto, para comparar el valor del atributo `Type` con la cadena "application", se utiliza la expresión `[@Type='application']`.

Puedes utilizar esta solución en todas tus consultas similares, simplemente ajustando la ruta del elemento y el atributo según sea necesario.

Espero que esto te ayude a contar el número de elementos `control` con el atributo `Type` igual a "application" en tu documento XML.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar