我需要将XML重组为4个不同的“块”。最后一个块必须包含来自group-by的不同值以及该组中第一个和最后一个实例的位置。当我对数据进行分组以构建其他块时,我找不到一种方法来实现这一点。
原始结构;
<?xml version="1.0"?>
<DATASET>
<TABLE>
<MATERIAL>AAA_007_-20</MATERIAL>
<ROUTING_DESCRIPTION>1292UN-AAA_007_20 - IA3 Helicoils balancing masses</ROUTING_DESCRIPTION>
<OPERATION>0005</OPERATION>
<WORKCENTRE>S0204610</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>0</OPR_DURATION>
<BAAN_TEXT_NBR>4636293</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>1</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>ORDEN DE DESPACHO. IA3 APLICABLE IAAA_007_20, CON REF. NRC MOS-NC-ASE-0074</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AAA_007_-20</MATERIAL>
<ROUTING_DESCRIPTION>1292UN-AAA_007_20 - IA3 Helicoils balancing masses</ROUTING_DESCRIPTION>
<OPERATION>0010</OPERATION>
<WORKCENTRE>S0204610</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>0</OPR_DURATION>
<BAAN_TEXT_NBR>4636294</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>1</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>DESPACHAR MATERIAL SEGUN ESTRUCTURA</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0010</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960079</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>1</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>DESMONTAJE CONJUNTO FEEDER IBERIA
===========================================================================
DESMONTAR CONJUNTO FEEDER IBERIA (AG100AE2526E.) Y ENVIAR A RYMSA.
...
VERIFICAR A-A</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0020</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960225</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>1</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>PREMONTAJE CONJUNTO BOCINA-POLARIZADOR
===========================================================================
UNIR CONJUNTO BOCINA POS.01 CON POLARIZADOR POS.02 MEDIANTE TORNILLOS
POS.08 Y ARANDELAS DE INVAR POS.10. S/SECCION E2-E2 DE</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0020</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960225</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>2</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>LA HOJA 01 DEL
PLANO. COORDINAR CARAS INTERNAS DE POLARIZADOR CON EJES DE BOCINA SEGÚN
NOTA 4.
...
VERIFICAR A-A.
===========================================================================
= AVISAR A CONTROL DE PRODUCCION PARA ENVIAR</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0020</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960225</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>3</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>CONJUNTO A RF =
===========================================================================</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0030</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960226</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>1</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>PRE-MONTAJE CONJUNTO BOCINA-SOPORTE BOCINA
===========================================================================
MONTAR SOPORTE FEEDER IBERIA POS.03 EN CONJUNTO BOCINA IBERIA POS.01 CON
TORNILLO POS.06 Y ARANDELA POS.07 S/SECCIÓN C1-C</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0030</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960226</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>2</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>1 Y E1-E1 DE LA HOJA 01 DEL
PLANO.
...
VERIFICAR A-A.
===========================================================================
= AVISAR A CONTROL DE PRODUCCIÓN PARA ENVIAR CONJUNTO A RF =
===============================</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0030</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960226</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>3</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>============================================</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0040</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960228</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>1</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>MONTAJE FINAL CONJUNTO FEEDER - PORALIZADOR
===========================================================================
MONTAR PASADORES POS.10 S/SECCIONES E1-E1 DE LAS HOJAS 01 DEL PLANO DESPUÉS
DEL AJUSTE DE RF S/NOTA 01 DE LA HOJA 01 DEL</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0040</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960228</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>2</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>PLANO.
PREPARAR MEZCLA DE ADHESIVO SOLITHANE S/IT-ERS-A005, APLICAR SOBRE ROSCA DE
LOS TORNILLOS POS.08 Y DAR DE APRIETE DEFINITIVO 2NM+PAR DE FRENADO SEGÚN
SECCIÓN TÍPICA DE LA HOJA 01 Y NOTAS 5 DEL PLANO.
PREPARAR MEZCLA DE ADHESIVO EC</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0040</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960228</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>3</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>2216 S/IT-S-A043, SELLAR TORNILLOS
POS.08 SEGÚN SECCIÓN TÍPICA Y NOTA 6 DE LA HOJA 01 DEL PLANO.
MONTAJE FINAL CONJUNTO FEEDER - SOPORTE FEEDER
===========================================================================
DAR DE APRIETE DEF</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0040</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960228</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>4</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>INITIVO A LOS TORNILLOS POS.06 DE 2,5NM+PAR DE FRENADO
SEGÚN NOTA DEL PLANO.
...
VERIFICAR A-A.</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0050</OPERATION>
<WORKCENTRE>S0209835</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960229</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>1</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>CARACTERIZAR CONJUNTO FEEDER IBERIA
===========================================================================
VERIFICAR INTERFACES. RELLENAR REGISTRO DE INSPECCIÓN.
...
VERIFICAR A-A-X</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0060</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>4</OPR_DURATION>
<BAAN_TEXT_NBR>3960230</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>1</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>PRE-MONTAJE FEEDER & GUIA DE ONDA IBERIA
===========================================================================
REALIZAR OPERACIONES DESCRITAS EN EL APARTADO 6.4 DEL LIBRO DE MONTAJE.
PRE-MONTAJE FEEDER IBERIA
=======================</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0060</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>4</OPR_DURATION>
<BAAN_TEXT_NBR>3960230</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>2</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>====================================================
REALIZAR OPERACIONES DESCRITAS EN EL APARTADO 6.8.2 DEL LIBRO DE MONTAJE.
MONTAJE FEEDER FINAL IBERIA
===========================================================================
REALIZA</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0060</OPERATION>
<WORKCENTRE>S0204810</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>4</OPR_DURATION>
<BAAN_TEXT_NBR>3960230</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>3</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>R OPERACIONES DESCRITAS EN EL APARTADO 6.10.2 DEL LIBRO DE MONTAJE.
...
VERIFICAR A-A.</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0070</OPERATION>
<WORKCENTRE>S0209835</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960232</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>1</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>ALINEAMIENTO FEEDER IBERIA
===========================================================================
ENGLOBA EL ALINEAMIENTO DEL FEEDER IBERIA. OPERACIÓN 6.9.2 DEL LIBRO DE
MONTAJE.
...
VERIFICAR A-A-X</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0080</OPERATION>
<WORKCENTRE>S0209808</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>1</OPR_DURATION>
<BAAN_TEXT_NBR>3960235</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>1</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>REALIZAR VERIFICACIÓN FINAL.
...
VERIFICAR A-A-G-X</BAAN_TEXT_VAL>
</TABLE>
<TABLE>
<MATERIAL>AG1-ECE-NCR0-04</MATERIAL>
<ROUTING_DESCRIPTION>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_DESCRIPTION>
<OPERATION>0090</OPERATION>
<WORKCENTRE>S0204610</WORKCENTRE>
<OPR_CONTROLKEY>ZP01</OPR_CONTROLKEY>
<OPR_DURATION>0</OPR_DURATION>
<BAAN_TEXT_NBR>3960234</BAAN_TEXT_NBR>
<BAAN_TEXT_LINE_SEQ>1</BAAN_TEXT_LINE_SEQ>
<BAAN_TEXT_VAL>ALMACENAR HASTA SU PRÓXIMO MONTAJE.</BAAN_TEXT_VAL>
</TABLE>
</DATASET>到目前为止XSLT;
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/DATASET">
<xsl:for-each-group select="TABLE" group-by="ROUTING_DESCRIPTION">
<BAPI>
<ROUTING_ID>
<xsl:value-of select="ROUTING_DESCRIPTION" />
</ROUTING_ID>
<OPERATIONS>
<xsl:for-each-group select="current-group()" group-by="OPERATION">
<item>
<xsl:copy-of select="OPERATION" />
</item>
</xsl:for-each-group>
</OPERATIONS>
<TEXT>
<xsl:for-each-group select="current-group()" group-by="concat(OPERATION, '|', BAAN_TEXT_LINE_SEQ)">
<item>
<xsl:copy-of select="OPERATION" />
<xsl:copy-of select="BAAN_TEXT_VAL" />
</item>
</xsl:for-each-group>
</TEXT>
<TEXT_ASSIGN>
<xsl:for-each-group select="current-group()" group-by="OPERATION">
<item>
<xsl:copy-of select="OPERATION" />
<FROM></FROM>
<TO></TO>
</item>
</xsl:for-each-group>
</TEXT_ASSIGN>
</BAPI>
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>和我的结果;
<?xml version="1.0" encoding="UTF-8"?>
<BAPI>
<ROUTING_ID>1292UN-AAA_007_20 - IA3 Helicoils balancing masses</ROUTING_ID>
<OPERATIONS>
<item>
<OPERATION>0005</OPERATION>
</item>
<item>
<OPERATION>0010</OPERATION>
</item>
</OPERATIONS>
<TEXT>
<item>
<OPERATION>0005</OPERATION>
<BAAN_TEXT_VAL>ORDEN DE DESPACHO. IA3 APLICABLE IAAA_007_20, CON REF. NRC MOS-NC-ASE-0074</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0010</OPERATION>
<BAAN_TEXT_VAL>DESPACHAR MATERIAL SEGUN ESTRUCTURA</BAAN_TEXT_VAL>
</item>
</TEXT>
<TEXT_ASSIGN>
<item>
<OPERATION>0005</OPERATION>
<FROM />
<TO />
</item>
<item>
<OPERATION>0010</OPERATION>
<FROM />
<TO />
</item>
</TEXT_ASSIGN>
</BAPI><BAPI>
<ROUTING_ID>1707UN-AG1-ECE-NCR004 - REP. FEEDER IBERIA</ROUTING_ID>
<OPERATIONS>
<item>
<OPERATION>0010</OPERATION>
</item>
<item>
<OPERATION>0020</OPERATION>
</item>
<item>
<OPERATION>0030</OPERATION>
</item>
<item>
<OPERATION>0040</OPERATION>
</item>
<item>
<OPERATION>0050</OPERATION>
</item>
<item>
<OPERATION>0060</OPERATION>
</item>
<item>
<OPERATION>0070</OPERATION>
</item>
<item>
<OPERATION>0080</OPERATION>
</item>
<item>
<OPERATION>0090</OPERATION>
</item>
</OPERATIONS>
<TEXT>
<item>
<OPERATION>0010</OPERATION>
<BAAN_TEXT_VAL>DESMONTAJE CONJUNTO FEEDER IBERIA
===========================================================================
DESMONTAR CONJUNTO FEEDER IBERIA (AG100AE2526E.) Y ENVIAR A RYMSA.
...
VERIFICAR A-A</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0020</OPERATION>
<BAAN_TEXT_VAL>PREMONTAJE CONJUNTO BOCINA-POLARIZADOR
===========================================================================
UNIR CONJUNTO BOCINA POS.01 CON POLARIZADOR POS.02 MEDIANTE TORNILLOS
POS.08 Y ARANDELAS DE INVAR POS.10. S/SECCION E2-E2 DE</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0020</OPERATION>
<BAAN_TEXT_VAL>LA HOJA 01 DEL
PLANO. COORDINAR CARAS INTERNAS DE POLARIZADOR CON EJES DE BOCINA SEGÚN
NOTA 4.
...
VERIFICAR A-A.
===========================================================================
= AVISAR A CONTROL DE PRODUCCION PARA ENVIAR</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0020</OPERATION>
<BAAN_TEXT_VAL>CONJUNTO A RF =
===========================================================================</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0030</OPERATION>
<BAAN_TEXT_VAL>PRE-MONTAJE CONJUNTO BOCINA-SOPORTE BOCINA
===========================================================================
MONTAR SOPORTE FEEDER IBERIA POS.03 EN CONJUNTO BOCINA IBERIA POS.01 CON
TORNILLO POS.06 Y ARANDELA POS.07 S/SECCIÓN C1-C</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0030</OPERATION>
<BAAN_TEXT_VAL>1 Y E1-E1 DE LA HOJA 01 DEL
PLANO.
...
VERIFICAR A-A.
===========================================================================
= AVISAR A CONTROL DE PRODUCCIÓN PARA ENVIAR CONJUNTO A RF =
===============================</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0030</OPERATION>
<BAAN_TEXT_VAL>============================================</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0040</OPERATION>
<BAAN_TEXT_VAL>MONTAJE FINAL CONJUNTO FEEDER - PORALIZADOR
===========================================================================
MONTAR PASADORES POS.10 S/SECCIONES E1-E1 DE LAS HOJAS 01 DEL PLANO DESPUÉS
DEL AJUSTE DE RF S/NOTA 01 DE LA HOJA 01 DEL</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0040</OPERATION>
<BAAN_TEXT_VAL>PLANO.
PREPARAR MEZCLA DE ADHESIVO SOLITHANE S/IT-ERS-A005, APLICAR SOBRE ROSCA DE
LOS TORNILLOS POS.08 Y DAR DE APRIETE DEFINITIVO 2NM+PAR DE FRENADO SEGÚN
SECCIÓN TÍPICA DE LA HOJA 01 Y NOTAS 5 DEL PLANO.
PREPARAR MEZCLA DE ADHESIVO EC</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0040</OPERATION>
<BAAN_TEXT_VAL>2216 S/IT-S-A043, SELLAR TORNILLOS
POS.08 SEGÚN SECCIÓN TÍPICA Y NOTA 6 DE LA HOJA 01 DEL PLANO.
MONTAJE FINAL CONJUNTO FEEDER - SOPORTE FEEDER
===========================================================================
DAR DE APRIETE DEF</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0040</OPERATION>
<BAAN_TEXT_VAL>INITIVO A LOS TORNILLOS POS.06 DE 2,5NM+PAR DE FRENADO
SEGÚN NOTA DEL PLANO.
...
VERIFICAR A-A.</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0050</OPERATION>
<BAAN_TEXT_VAL>CARACTERIZAR CONJUNTO FEEDER IBERIA
===========================================================================
VERIFICAR INTERFACES. RELLENAR REGISTRO DE INSPECCIÓN.
...
VERIFICAR A-A-X</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0060</OPERATION>
<BAAN_TEXT_VAL>PRE-MONTAJE FEEDER & GUIA DE ONDA IBERIA
===========================================================================
REALIZAR OPERACIONES DESCRITAS EN EL APARTADO 6.4 DEL LIBRO DE MONTAJE.
PRE-MONTAJE FEEDER IBERIA
=======================</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0060</OPERATION>
<BAAN_TEXT_VAL>====================================================
REALIZAR OPERACIONES DESCRITAS EN EL APARTADO 6.8.2 DEL LIBRO DE MONTAJE.
MONTAJE FEEDER FINAL IBERIA
===========================================================================
REALIZA</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0060</OPERATION>
<BAAN_TEXT_VAL>R OPERACIONES DESCRITAS EN EL APARTADO 6.10.2 DEL LIBRO DE MONTAJE.
...
VERIFICAR A-A.</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0070</OPERATION>
<BAAN_TEXT_VAL>ALINEAMIENTO FEEDER IBERIA
===========================================================================
ENGLOBA EL ALINEAMIENTO DEL FEEDER IBERIA. OPERACIÓN 6.9.2 DEL LIBRO DE
MONTAJE.
...
VERIFICAR A-A-X</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0080</OPERATION>
<BAAN_TEXT_VAL>REALIZAR VERIFICACIÓN FINAL.
...
VERIFICAR A-A-G-X</BAAN_TEXT_VAL>
</item>
<item>
<OPERATION>0090</OPERATION>
<BAAN_TEXT_VAL>ALMACENAR HASTA SU PRÓXIMO MONTAJE.</BAAN_TEXT_VAL>
</item>
</TEXT>
<TEXT_ASSIGN>
<item>
<OPERATION>0010</OPERATION>
<FROM />
<TO />
</item>
<item>
<OPERATION>0020</OPERATION>
<FROM />
<TO />
</item>
<item>
<OPERATION>0030</OPERATION>
<FROM />
<TO />
</item>
<item>
<OPERATION>0040</OPERATION>
<FROM />
<TO />
</item>
<item>
<OPERATION>0050</OPERATION>
<FROM />
<TO />
</item>
<item>
<OPERATION>0060</OPERATION>
<FROM />
<TO />
</item>
<item>
<OPERATION>0070</OPERATION>
<FROM />
<TO />
</item>
<item>
<OPERATION>0080</OPERATION>
<FROM />
<TO />
</item>
<item>
<OPERATION>0090</OPERATION>
<FROM />
<TO />
</item>
</TEXT_ASSIGN>
</BAPI>在TEXT_ASSIGN块中,我需要计算每个操作的FROM和to值。这些值需要基于文本节点的内容,并定义每个操作在该节点中的第一个和最后一个位置。简单的例子是操作0020,它需要返回2的FROM和4的to。
非常感谢您的帮助!
发布于 2021-05-09 20:45:57
我想你可以用一个变量来解决这个问题:
<xsl:variable name="text">
<TEXT>
<xsl:for-each-group select="current-group()" group-by="concat(OPERATION, '|', BAAN_TEXT_LINE_SEQ)">
<item>
<xsl:copy-of select="OPERATION" />
<xsl:copy-of select="BAAN_TEXT_VAL" />
</item>
</xsl:for-each-group>
</TEXT>
</xsl:variable>
<xsl:sequence select="$text"/>
<TEXT_ASSIGN>
<xsl:for-each-group select="current-group()" group-by="OPERATION">
<item>
<xsl:copy-of select="OPERATION" />
<xsl:variable name="indices" select="index-of($text/TEXT/item/OPERATION, current-grouping-key())"/>
<FROM>
<xsl:value-of select="$indices[1]"/>
</FROM>
<TO>
<xsl:value-of select="$indices[last()]"/>
</TO>
</item>
</xsl:for-each-group>
</TEXT_ASSIGN>https://stackoverflow.com/questions/67457539
复制相似问题