У меня много элементов, но моя XSLT-схема просто соответствует первому из них. Следствием этого является то, что он вставляет только одну строку в мою базу данных. Почему я говорю о базе данных? Потому что цель моего XSLT - преобразовать XML, чтобы вставить элементы XML в базу данных. Лучше показать вам изображение.
Этот код соответствует схеме XSLT:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="EstablecimientosVenta">
<ENVIO>
<TVEN_UP_BUQUE_TMP>
<xsl:for-each select="EstablecimientoVenta">
<xsl:for-each select="Ventas">
<xsl:for-each select="VentasUnidadProductiva">
<METPROD><xsl:value-of select=
"DatosUnidadProductiva/Buque/MetodoProduccion"/
</METPROD>
<CODIGO><xsl:value-of select=
"DatosUnidadProductiva/Buque/CodigoBuque"/></CODIGO>
<PUERTOA><xsl:value-of
select="DatosUnidadProductiva/Buque/PuertoAL5"/>
</PUERTOA>
<ARMADOR><xsl:value-of
select="DatosUnidadProductiva/Buque/Armador"/>
</ARMADOR>
<CAPITAN><xsl:value-of
select="DatosUnidadProductiva/Buque/Capitan"/>
</CAPITAN>
<FREGRESO><xsl:value-of
select="DatosUnidadProductiva/Buque/FechaRegresoPuerto"/>
</FREGRESO>
<MAREA><xsl:value-of
select="DatosUnidadProductiva/Buque/CodMarea"/>
</MAREA>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</TVEN_UP_BUQUE_TMP>
</ENVIO>
</xsl:template>
PD: Целью этой схемы XSLT является обработка схемы XML с помощью оракулапроцессор, который принимает XSLT и вставляет элемент XML в соответствующие столбцы таблицы (таблица TVEN_UP_BUQUE_TMP)
Это схема XML (она настолько велика, что я предоставлю вам уменьшенную схему):
<Envio xmlns="" NumEnvio="NV_17_06020_20190607_102221" TipoRespuesta="3">
<EstablecimientosVenta>
<EstablecimientoVenta NumIdentificacionEstablec="12.06021/A">
<Ventas>
<VentasUnidadProductiva>
<DatosUnidadProductiva>
<Buque>
<MetodoProduccion>1</MetodoProduccion>
<CodigoBuque>ESP000025044</CodigoBuque>
<PuertoAL5>ESVJY</PuertoAL5>
<Armador>DEPORTES NAUTICOS CARLOS
</Armador>
<FechaRegresoPuerto>2019-06-
07T00:00:00</FechaRegresoPuerto>
</Buque>
</DatosUnidadProductiva>
</VentasUnidadProductiva>
<VentasUnidadProductiva>
<DatosUnidadProductiva>
<Buque>
<MetodoProduccion>1</MetodoProduccion>
<CodigoBuque>ESP000014149</CodigoBuque>
<PuertoAL5>ESVJY</PuertoAL5>
<Armador>FRANCISCO PEREZ SORIANO
</Armador>
<FechaRegresoPuerto>
2019-06-07T00:00:00</FechaRegresoPuerto>
</Buque>
</DatosUnidadProductiva>
</VentasUnidadProductiva>
</Ventas>
</EstablecimientoVenta>
</EstablecimientosVenta>
</Envio>
Мой пример XML слишком велик, поэтому я предоставлю вам набор изображений, где вы сможете увидеть содержимое и результат.
Результат с этими схемами после анализа:
| "METPROD"| "CODIGO" |"PUERTOA"| "ARMADOR" |"CAPITAN"|
| - - - - -| - - - - - - | - - - - | - - - - - - - - - - - - -| |
| 1 |"ESP000025044"| "ESVJY" |"DEPORTES NAUTICOS CARLOS"| null |
| "FREGRESO" | "MAREA" | "BU_VALIDO" | "NUMDOCVENTA"|
| - - - - - - - - - - -| - - - - | - - - - - - - | - - - - - - -|
| "2019-06-07T00:00:00"| null | null | null |
Ожидаемый результат будет следующим:
row 1:
| "METPROD"| "CODIGO" |"PUERTOA"| "ARMADOR" |"CAPITAN"|
| - - - - -| - - - - - - | - - - - | - - - - - - - - - - - - -| |
| 1 |"ESP000014149"| "ESVJY" | "FRANCISCO PEREZ SORIANO"| null |
| "FREGRESO" | "MAREA" | "BU_VALIDO" | "NUMDOCVENTA"|
| - - - - - - - - - - -| - - - - | - - - - - - - | - - - - - - -|
| "2019-06-07T00:00:00"| null | null | null |
row 2:
| "METPROD"| "CODIGO" |"PUERTOA"| "ARMADOR" |"CAPITAN"|
| - - - - -| - - - - - - | - - - - | - - - - - - - - - - - - -| |
| 1 |"ESP000014149"| "ESVJY" | "FRANCISCO PEREZ SORIANO"| null |
| "FREGRESO" | "MAREA" | "BU_VALIDO" | "NUMDOCVENTA"|
| - - - - - - - - - - -| - - - - | - - - - - - - | - - - - - - -|
| "2019-06-07T00:00:00"| null | null | null |
Я пытался использовать xslt для каждого случая, но это не решение.
На изображениях.
https://imgur.com/gallery/czapXVQ
Ожидаемый результат - набор строк с несколькими буквами.