group-starting-with

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Funciones > Referencia de la biblioteca de funciones > core | sequence functions (secuencia) >

group-starting-with

La función group-starting-with toma como argumento una condición booleana. Si se cumple la condición booleana se crea un grupo nuevo que empieza con el registro que cumple esa condición. En el siguiente ejemplo la condición es que la clave "Clave" debe ser "título". Esta condición se cumple en el caso de los registros primero y cuarto, así que se crean dos grupos:

mf_group-starting-with

Nota: si existen registros antes del primero que cumple la condición, se crea un grupo más. Por ejemplo, si hubiera más registros "línea" antes del último registro "título", estos se colocarían en ese grupo adicional.

 

Argumentos

Nombre

Tipo

Descripción

nodos/filas

Una secuencia de elementos

Una secuencia de nodos o filas (por ejemplo, el origen de la conexión puede estar en un nodo XML de origen con secundarios, un registro CSV, etc.).

bool

xs:boolean

Indica la condición booleana que inicia un nuevo grupo si se cumple (true).

 

Ejemplo

Imaginemos que sus datos de origen son un archivo XML con el siguiente contenido (tenga en cuenta que, para simplificar, en el código de ejemplo siguiente hemos eliminado el espacio de nombre y las declaraciones XML).

 

<records>
  <record key="heading" value="Intro"/>
  <record key="line" value="A"/>
  <record key="line" value="B"/>
  <record key="heading" value="Body"/>
  <record key="line" value="C"/>
</records>

 

El requisito empresarial es crear un grupo para cada registro "heading". Cada grupo también debe incluir los registros "line" que siguen al registro "heading". Para ello, la siguiente asignación invoca la función group-starting-with. En la siguiente asignación, siempre que el nombre de key sea "heading", el argumento dado a bool pasa a ser true y se crea un grupo nuevo.

mf_group-starting-with_map

El resultado de la asignación es el siguiente:

 

<groups>
  <group>
    <record key="heading" value="Intro"/>
    <record key="line" value="A"/>
    <record key="line" value="B"/>
  </group>
  <group>
    <record key="heading" value="Body"/>
    <record key="line" value="C"/>
  </group>
</groups>

 

Este ejemplo, junto con otros ejemplos de agrupación, es parte de esta asignación: <Documentos>\Altova\MapForce2019\MapForceExamples\Tutorial\GroupingFunctions.mfd. Antes de hacer clic en la pestaña Resultados, recuerde hacer clic en el botón Vista previa mf_ic_preview de la función que quiere comprobar.


© 2019 Altova GmbH