DetailPage-MSS-KB

Microsoft Knowledge Base

Identificativo articolo: 191758 - Ultima modifica: martedì 29 giugno 2004 - Revisione: 1.1

 

Sommario

In questo articolo viene descritto come creare un file di dati XML (Extensible Markup Language) da un cursore in Visual FoxPro 6.0.

Informazioni

XML (Extensible Markup Language) è il formato universale per i dati sul Web. XML è un formato basato su testo che consente agli sviluppatori di descrivere, distribuire e scambio di dati strutturati tra una gamma di applicazioni per i client per la visualizzazione locale e la modifica. XML non sostituisce HTML, ma è un formato complementare.

Per creare un file XML da una tabella filtrata dbf attenersi alla seguente procedura:
  1. Creare un file di programma (prg) denominato Callxml.prg e inserire il codice riportato di seguito nel file:
    LOCAL lcFileName,lcXMLFile,lcFilter
    
    lcDBFName = HOME(2) + "data\orders.dbf"
    lcXMLFile = LOWER(SYS(2023)) + "\orders.xml"
    lcFilter = "FOR To_Region='WA'"
    
    STRTOFILE(DBF2XML(lcDBFName, lcFilter, .T.), ;
    lcXMLFile)
    MODIFY FILE (lcXMLFile) NOWAIT
    
    RETURN
    						
  2. Creare un altro file prg denominato Dbf2xml.prg e inserire il codice seguente in questo file prg:
    * Dbf2xml.prg
    
    *-- ASCII codes
    #DEFINE TAB     CHR(9)
    #DEFINE LF      CHR(10)
    #DEFINE CR      CHR(13)
    #DEFINE CR_LF   CR+LF
    
    LPARAMETERS tcTable, tcScope, tnTabIndents
    LOCAL lcTable, lcAlias, lcScope, lcDBFName, lcIndentText, lcDBF, lcRootName
    LOCAL lcValue, lcField, lnFieldCount, lnCount, lnLastSelect, lnLastRecNo
    LOCAL lcXMLText
    DIMENSION laFields[1]
    
    IF NOT INLIST(VARTYPE(tcTable), "C", "L") OR NOT ;
           INLIST(VARTYPE(tcScope), "C", "L")
       RETURN ""
    ENDIF
    
    lcIndentText = IIF(VARTYPE(tnTabIndents) == "N", ;
                       REPLICATE(TAB, tnTabIndents), "")
    lcTable = LOWER(IIF(EMPTY(tcTable), ALIAS(), ALLTRIM(tcTable)))
    lnLastSelect=SELECT()
    
    IF "." $ lcTable
       lcDBF = lcTable
       IF NOT FILE(lcDBF)
          RETURN ""
       ENDIF
       
       SELECT 0
       lcAlias = LOWER(SYS(2015))
       USE (lcDBF) ALIAS (lcAlias) AGAIN SHARED
       lcDBFName = LOWER(FORCEEXT(JUSTFNAME(DBF()), ""))
    ELSE
       lcDBF = ""
       lcAlias = lcTable
       lcDBFName = lcAlias
    ENDIF
    
    IF NOT USED(lcAlias)
       SELECT (lnLastSelect)
       RETURN ""
    ENDIF
    
    lcScope = IIF(EMPTY(tcScope), "ALL", ALLTRIM(tcScope))
    
    SELECT (lcAlias)
    
    lnLastRecNo = IIF(EOF(), 0, RECNO())
    lcXMLText = "<"+ lcDBFName + "_table>" + CR_LF
    
    lnFieldCount = AFIELDS(laFields)
    IF lnFieldCount = 0
       SELECT (lnLastSelect)
       RETURN ""
    ENDIF
    
    lcRootName = lcDBFName
    DO WHILE TYPE(lcRootName) != "U"
       lcRootName = lcRootName + "1"
    ENDDO
    
    SCAN &lcScope
       lcXMLText = lcXMLText + lcIndentText + ;
          "<" + lcRootName + ">" + CR_LF
          
       FOR lnCount = 1 TO lnFieldCount
          lcField = LOWER(laFields[lnCount, 1])
          lcValue = ALLTRIM(TRANSFORM(EVALUATE(lcField)))
          IF EMPTY(lcValue)
             LOOP
          ENDIF
          
          lcXMLText=lcXMLText + lcIndentText + TAB + ;
             "<" + lcField + ">" + lcValue + "</" + lcField + ">" + CR_LF
       ENDFOR
       
       lcXMLText = lcXMLText + lcIndentText + ;
          "</" + lcRootName + ">" + CR_LF
    ENDSCAN
    
    IF EMPTY(lcDBF)
       IF lnLastRecNo > 0
          GO lnLastRecNo
       ENDIF
    ELSE
        USE
    ENDIF
    
    SELECT (lnLastSelect)
    
    lcXMLText = lcXMLText + CR_LF + "</"+ lcDBFName + "_table>"
    
    RETURN lcXMLText
    					
  3. Nella finestra di comando di Visual FoxPro, eseguire il file di Callxml.prg. In questo modo la creazione di un file denominato Orders.xml, ovvero un sottoinsieme di file di testo della tabella Orders.dbf. Il file viene inserito automaticamente nella cartella a cui punta l'impostazione di SET TEMP del sistema operativo ambiente.

Riferimenti

Per ulteriori informazioni su XML, vedere il seguente sito Web Microsoft:
http://msdn.microsoft.com/xml/ (http://msdn.microsoft.com/xml/)

Le informazioni in questo articolo si applicano a:
  • Microsoft Visual FoxPro 6.0 Professional Edition
Chiavi: 
kbmt kbhowto KB191758 KbMtit
Traduzione automatica articoliTraduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell’articolo: 191758  (http://support.microsoft.com/kb/191758/en-us/ )
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Articolo KB ritiratoDichiarazione di non responsabilità per articoli della Microsoft Knowledge Base su prodotti non più supportati
Questo articolo è stato scritto sui prodotti per cui Microsoft non offre più supporto. L’articolo, quindi, viene offerto ‘così come è’ e non verrà più aggiornato.
Condividi
Altre opzioni per il supporto
Forum del supporto di Microsoft Community
Contattaci direttamente
Ricerca di un partner certificato Microsoft
Microsoft Store