Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    come recupero dati da xml e li cancello successivamente?

    Premetto che sono ancora alle prime armi per quel che riguarda Java.

    Il mio problema è il seguente: ho un file xml le cui informazioni mi serve visualizzarle in una pagina html. So benissimo che è una cosa che si può fare tranquillamente con un foglio di stile xsl, ma questo comporterebbe la modifica del file originale xml, cosa che devo evitare.
    il file xml è di questo tipo:
    codice:
     Concept: Contour Shape
     Instance: corpo_anguilla
     Descriptor: serpente
     -------------------------------- 
    
    <?xml version='1.0' encoding='ISO-8859-1' ?>
    <Mpeg7 xmlns = "urn:mpeg:mpeg7:schema:2001" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "urn:mpeg:mpeg7:schema:2001 schema/Mpeg7-2001.xsd"><DescriptionUnit xsi:type = "DescriptorCollectionType"><Descriptor xsi:type = "ContourShapeType"><Region><RegionNumber>255</RegionNumber>
    <GlobalCurvature>16  14 </GlobalCurvature>
    <PrototypeCurvature>6  16 </PrototypeCurvature>
    <HighestPeakY>31</HighestPeakY>
    <Peak peakX = "50" peakY = "5"/>
    <Peak peakX = "47" peakY = "1"/>
    <Peak peakX = "56" peakY = "6"/>
    <Peak peakX = "52" peakY = "6"/>
    <Peak peakX = "55" peakY = "6"/>
    </Region>
    </Descriptor>
    </DescriptionUnit>
    </Mpeg7>
    Le prime tre righe sono quelle che mi danno più problemi in quanto, come si può vedere, non sono scritte in codice html, pertanto necessito di un qualcosa che mi recuperi quelle informazioni e le cancelli subito dopo, in modo da poter usare successivamente xsl per visualizzarle in html.
    Mi hanno consigliato di trattare i dati con le funzioni di text processing di java, ma onestamente le conosco solo di nome.

  2. #2
    Non esiste un "pulitore di codice", quindi l'unico modo è trattare quell'xml come una stringa e agire di conseguenza... magari puoi cancellare tutto quello che c'è prima "<?" se il descrittore dell'xml viene mandato sempre.
    Oppure se hai la certezza che le linee sono sempre 3, allora cancelli le prime tre linee.
    lolide
    Java Programmer

    Informati

  3. #3
    ma infatti quello che intendo fare è cancellare quelle tre righe però non devo perdere le informazioni contenute in esse, poichè devo visualizzarle in html...

  4. #4
    Originariamente inviato da kob4yashi
    ma infatti quello che intendo fare è cancellare quelle tre righe però non devo perdere le informazioni contenute in esse, poichè devo visualizzarle in html...
    Ciao,se il problema è che l'xml di partenza non va bene puoi procedere così: lanci due trasformazioni xslt in cascata:
    -la prima è sostanzialmente una trasformazione identica (da te modificata per ignorare i nodi che non vuoi considerare) con la quale ottieni un xml intermedio .
    -la seconda prende come input l'xml intermedio e produce un html.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    grazie per la risposta,
    in effetti l'xml di partenza non va bene. questo non perché ci siano informazioni superflue, anzi...
    io vorrei che le informazioni presenti nell'intestazione vengano lette e visualizzate nell'html finale e che l'intestazione stessa venga cancellata dopo tale lettura poichè quelle righe vengono viste come un errore al momento dell'applicazione del foglio di stile.

    non so se mi sono spiegato bene, in caso contrario lo rispiego...
    grazie ancora

  6. #6
    Originariamente inviato da lolide
    Non esiste un "pulitore di codice", quindi l'unico modo è trattare quell'xml come una stringa e agire di conseguenza... magari puoi cancellare tutto quello che c'è prima "<?" se il descrittore dell'xml viene mandato sempre.
    Oppure se hai la certezza che le linee sono sempre 3, allora cancelli le prime tre linee.
    Ah non avevo proprio capito....quelle tre righe le avevo interpretare come dei commenti tuoi all'xml.
    Direi che allora l'unica soluzione che hai è quello giustamente postata da lolide (che quoto qui sopra) e trasformazione te ne basta ed avanza una
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  7. #7
    Per la cancellazione se hai un separatore univoco sempre presente come quiella linea tratteggiata, ti basta cercare quello e troncare la stringa (cioè l'xml convertito in stringa) da li in su, il resto è un xml valido e lo puoi dare in pasto al tuo trasformet xsl.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  8. #8
    ma quella trasformazione mi permette solo di cancellare l'intestazione? Perché in ogni caso quei dati vorrei che fossero visualizzati nella pagina html finale.

    grazie

  9. #9
    Originariamente inviato da kob4yashi
    ma quella trasformazione mi permette solo di cancellare l'intestazione? Perché in ogni caso quei dati vorrei che fossero visualizzati nella pagina html finale.

    grazie
    No la trasformazione xsl va proprio in errore se prima non bonifichi l'xml in input levando quell'intestazione (che non è xml). Se quei dati dell'intestazione li devi pure utilizzare nella pagina finale puoi solo usare una variante di quello che ti ho già detto, cioè:

    - ottenere l'xml come stringa
    - individuare il separatore fra la parte xml e quella non xm
    - splittare in due la stringa
    - lavorare la parte NON xml a parte, parsandola in qualche modo (che dipende da come sono strutturati i dati al suo interno)
    -lavorare la parte xml con una trasformazione xsl iniettando i dati ottenuti dal passo precedente al transformer xsl mediante properties (cerca nella documentazione per il come si fa questo)

    ciao
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

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.