replicate-item

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) >

replicate-item

Repeats every item in the input sequence the number of times specified in the count argument. If you connect a single item to the node/row argument, the function returns N items, where N is the value of the count argument. If you connect a sequence of items to the node/row argument, the function repeats each individual item in the sequence count times, processing one item at a time. For example, if count is 2, then the sequence (1,2,3) produces (1,1,2,2,3,3).

 

 

Repite cada elemento de la secuencia de entrada tantas veces como se indique en el argumento count. Si conecta un solo elemento al argumento node/row, la función devuelve N elementos, siendo N el valor del argumento count. Si conecta una secuencia de elementos al argumento node/row, la función repite cada uno de los elementos de la secuencia tantas veces como indique count y los procesa uno por uno. Por ejemplo, si count es 2, entonces la secuencia (1,2,3) produce (1,1,2,2,3,3).

function_replicate-item

Además, recuerde que puede dar un valor count distinto para cada elemento. Por ejemplo, imagine que tiene un archivo XML de origen con esta estructura:

<?xml version="1.0" encoding="UTF-8"?>
<SourceList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="source.xsd">
  <person>
    <name>Michelle</name>
    <count>2</count>
  </person>
  <person>
    <name>Ted</name>
    <count>4</count>
  </person>
  <person>
    <name>Ann</name>
    <count>3</count>
  </person>
</SourceList>

 

Con ayuda de la función replicate-item puede repetir cada nombre de persona las veces que quiera en el componente de destino. Para conseguirlo conecte el nodo <count> de cada persona a la entrada count de la función replicate-item:

example_replicate-item

Este sería el resultado:

<?xml version="1.0" encoding="UTF-8"?>
<TargetLists xsi:noNamespaceSchemaLocation="target.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <TargetList>
    <TargetString>Michelle</TargetString>
    <TargetString>Michelle</TargetString>
  </TargetList>
  <TargetList>
    <TargetString>Ted</TargetString>
    <TargetString>Ted</TargetString>
    <TargetString>Ted</TargetString>
    <TargetString>Ted</TargetString>
  </TargetList>
  <TargetList>
    <TargetString>Ann</TargetString>
    <TargetString>Ann</TargetString>
    <TargetString>Ann</TargetString>
  </TargetList>
</TargetLists>


© 2019 Altova GmbH