Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    9

    Come gestire NULL in xslt?

    Ciao,
    ho un file xml che devo trasformare tramite xslt in un altro file xml. Il file xml che viene generato dall'xslt tramite transx deve caricare i dati in tabella avendo un campo in chiave primaria. Purtroppo il file di input xml contiene dei record che sono null proprio per quel campo chiave e quindi dopo la trasformazione quando tento di caricare,ovviamente mi va in errore (Cannot insert NULL INTO "nome_campo"). Non so più cosa fare. Sapete aiutarmi.
    Comunque la mia soluzione è:

    <col name ="nome_campo"> <xsl:if test="string-length(@attr) = 13 or string-length(@attr) != null">
    <xsl:value-of select="@attr"/>
    </xsl:if>

    P.S: Ho inserito la lunghezza della stringa perchè il campo dev'essere 13

    Grazie mille
    Francesco

  2. #2

    Re: Come gestire NULL in xslt?

    C'è un errore di fondo la chiave primaria non è mai nulla, non può esserlo.
    Se il campo "chiave primaria" è nullo e se il problema sussuste per altri record, i vari record non sono univocamente riconoscibili, quindi in quel caso il campo non è chiave primaria.
    C'è un errore a monte, prima c'è da risolvere quello.
    Flickr .:. Work In Progress

    Non lasciare la mia mano, ovunque sarai, con chiunque ti accompagnerai. Non dimenticarti di me, ne morirei.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    9
    Ciao,
    lo so che un campo chiave di una tabella non può essere mai NULL.
    Magari mi sono spiegato male: La tabella la sto creando io adesso e quindi se dall'input mi arrivano record a Null per il mio campo chiave della tabella esso va in errore quando lancio il Transx ed è giusto che sia cosi. Questa situazione dev'essere gestita quando faccio l'xslt .
    Nel ringraziarti ti auguro una buona giornata.
    Ciao
    Francesco

  4. #4
    Utente di HTML.it L'avatar di Polley
    Registrato dal
    Jan 2005
    Messaggi
    696
    Per Null intendi vuoti ?
    E se sono vuoti o null cosa deve mettere l'xsl ?

    <xsl:if test="string-lenght(@attr) = 13 | @attr != ''">
    <xsl:value-of select="@attr" />
    </xsl:if>


    controlla se l'attributo ha lunghezza di 13 caratteri e se non è nullo, ma non ha senso :master: se hai già controllato la lunghezza del campo che è 13 per forza non è nullo !!!



  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    9
    Ciao,
    non riesco a capire bene se è vuoto, ti spiego il perchè: Se carico tutti i dati su DB togliendo il campo in chiave, faccio la query e i record "sporchi" risultano vuoti. Però la cosa strana è che nei dati incriminati (intendo nel file di input xml) arriva una cosa del tipo:

    "%SqlSelectEanIdOutput/results[0]/COD_MARCATURA%%SqlSelectEanIdOutput/results[0]/ean13checkdigit%"


    Che a vederlo cosi sembrerebbe che arrivi qualche numero gigantesco che lui non riesce a gestire.
    Una volta in PL SQL mi è successo una cosa simile.

    Grazie 1000 e spero di essermi spiegato bene.
    P.S: Da poco mi sono avvicinato a questo linguaggio di programmazione.
    Francesco

  6. #6
    Utente di HTML.it L'avatar di Polley
    Registrato dal
    Jan 2005
    Messaggi
    696
    non ho capito una mazza !!

    comunque cosi !='' controlli se non è vuoto !!
    ma devi controllare il valore del campo o dell'attributo ? :master:

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    9
    Devo controllare l'attributo.
    Ciao e scusami
    Francesco

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.