Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

ayuda con VB, XML y XSLT

Estas en el tema de ayuda con VB, XML y XSLT en el foro de Visual Basic clásico en Foros del Web. Estimados primero que todos espero que estén todos bien, Tengo la siguiente situación: Un control Visual Basic crea un archivo XML y este archivo XML ...
  #1 (permalink)  
Antiguo 02/07/2008, 09:05
Avatar de jpzapatas  
Fecha de Ingreso: octubre-2006
Ubicación: Chile
Mensajes: 87
Antigüedad: 17 años, 6 meses
Puntos: 0
ayuda con VB, XML y XSLT

Estimados primero que todos espero que estén todos bien,

Tengo la siguiente situación:

Un control Visual Basic crea un archivo XML y este archivo XML
utiliza una plantilla XSLT para visualizarce. Originalmente el control
y todo, fui diseñado para que se imprima de a una hoja. Pero lo que necesito
hacer ahora y es por eso que les escribo, es hacer exactamente las
mismas operaciones, pero ya no para un unico registro, si no que en forma masiva.

No esta demás mencionarles que soy nuevo en el tema de XML y XSLT...

Acepto preguntas, consejos, sugerencias, etc...

Gracias de ante mano
__________________
El ignorante afirma, el sabio duda y reflexiona.
Aristóteles
  #2 (permalink)  
Antiguo 03/07/2008, 08:38
Avatar de jpzapatas  
Fecha de Ingreso: octubre-2006
Ubicación: Chile
Mensajes: 87
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: ayuda con VB, XML y XSLT

Pucha, ojalá alguien me pueda orientar un poco la verdad necesito ayuda...
__________________
El ignorante afirma, el sabio duda y reflexiona.
Aristóteles
  #3 (permalink)  
Antiguo 03/07/2008, 09:26
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Respuesta: ayuda con VB, XML y XSLT

a ver, tines un VB que te crea un XML y XSLT para verlo en pantalla (e imprimirlo por impresora o te refieres a la misma pantalla ?) y quieres crearlos de forma masiva ?

Tu duda es de XML o de VB ?

Disculpa pero no te endiendo bien...
__________________
Esteban Quintana
  #4 (permalink)  
Antiguo 03/07/2008, 11:23
Avatar de jpzapatas  
Fecha de Ingreso: octubre-2006
Ubicación: Chile
Mensajes: 87
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: ayuda con VB, XML y XSLT

Estimado,
El problema lo tengo con la plantilla XSLT, tengo un archivo XML con la siguiente estructura:

Código XML
Código:
<Raiz>
    <Data>
         <Titulo>
         <Comprobante>
               <Detalle>
          </Comprobante>
     </Data>
    <Data>
         <Titulo>
         <Comprobante>
               <Detalle>
          </Comprobante>
     </Data>
</Raiz>
Y cuando ejecuto el XSLT me salen 4 registro y si te das cuenta en la estructura hay 2 Registros.
Te adjunto el Código que estoy implementando:
Este código es resumido, favor de contestar de forma clara para poder entender lo que debo hacer en mi código.


Código XSLT
Código:
<xsl:for-each select="//Raiz//Data">
    <!-- Informe Retroventa Retrocompra -->
							
 	<xsl:call-template name="CuadroTit"/>
	<br/>
	<xsl:call-template name="CuadroDetalle"/>
            <br/>
	<xsl:call-template name="DetalleInforme"/>
	<br/>
	<xsl:call-template name="DetalleInformeCla"/>
</xsl:for-each>
__________________
El ignorante afirma, el sabio duda y reflexiona.
Aristóteles
  #5 (permalink)  
Antiguo 03/07/2008, 12:08
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Respuesta: ayuda con VB, XML y XSLT

depende de que haga los sub-templates cuadro tit y demás, no se para que divides todo en sub-templates...algo mal ahí hay seguro...deberías de pasarle el parámetro par aque no tome tooda la estrucutra...

Tampoco entiendo para que el // del select

prueba con:

<xsl:for-each select="/Raiz/Data">
<xsl:value-of select="Titulo" />
</xsl:for-each>

A ver que te muestra, debería de mostrarte solo 2 títulos...

Saludos
__________________
Esteban Quintana
  #6 (permalink)  
Antiguo 03/07/2008, 17:38
Avatar de jpzapatas  
Fecha de Ingreso: octubre-2006
Ubicación: Chile
Mensajes: 87
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: ayuda con VB, XML y XSLT

Estimado, primero que todo, Muchísimas gracias por vuestra ayuda...

ya tengo la solución a como hacer este trabajo "Masivo" y que no me imprima 4 en vez de 2

El problema por el cual me repetía los datos es por que
<xsl:template match="/"> lo tenía mal (de esta forma <xsl:template match="/raiz">)

Código HTML:
<xsl:template match="/">
<xsl:for-each select="//Raiz//Data">
    <!-- Informe Retroventa Retrocompra -->
							
 	<xsl:call-template name="CuadroTit"/>
	<br/>
	<xsl:call-template name="CuadroDetalle"/>
            <br/>
	<xsl:call-template name="DetalleInforme"/>
	<br/>
	<xsl:call-template name="DetalleInformeCla"/>
</xsl:for-each> 
y funcionó perfecto...

De nuevo muchas gracias por tu ayuda-....

Saludos

JPZ
__________________
El ignorante afirma, el sabio duda y reflexiona.
Aristóteles

Última edición por jpzapatas; 03/07/2008 a las 17:39 Razón: .
  #7 (permalink)  
Antiguo 07/07/2008, 04:43
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: ayuda con VB, XML y XSLT

Aunque te funcione, hay una cosa que tienes mal conceptualmente.
Estás usando <xsl:for-each select="//Raiz//Data"> y deberías usar <xsl:for-each select="/Raiz/Data">

Tal y como lo tienes, tambien te busca los elementos <raiz> que pudiera haber en un nivel inferior, y allí busca los elementos <data> de cualquier nivel inferior. Como lo tienes te funciona por que dichos elementos no existen en niveles inferiores del fichero XML, pero te funcionaría más rápido si no usaras la doble barra ya que no tiene que buscar por toda la estructura del XML.
__________________
Pop & Rock Bands
Pop Music Stars
  #8 (permalink)  
Antiguo 07/07/2008, 07:32
Avatar de jpzapatas  
Fecha de Ingreso: octubre-2006
Ubicación: Chile
Mensajes: 87
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: ayuda con VB, XML y XSLT

Estiamdo, tiene toda la razón, ya que la dejé como usted lo indica, solo que se me olvidó decirlo en el post anterior...

Muchas gracias por su ayuda...
__________________
El ignorante afirma, el sabio duda y reflexiona.
Aristóteles
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:43.