IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

Lecture tronquée [SAX]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 37
    Par défaut Lecture tronquée
    bonjour,

    j'utilise sax pour lire mes fichier xml. Mais certaines valeurs issues de la lecture sont tronquées.

    Je m'explique :
    j'ai un fichier nommé home.xml ou j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <dico>
    ...
    <section id="61">
       <fr>paiement sécurisé</fr>
       <com>Secure Payments</com>
    </section>			
     
    <section id="64">
        <fr>Aucun numéro de carte bancaire n'est stocké</fr>
        <com>No credit card number is stored</com>
    </section>	
    ...
    </dico>
    quand je lis les balise fr je n'est aucun probleme, parcontre avec les com j'ai quelque fois des éléments tronqués ici par exemple à la section 64

    sax me donne au niveau de la methode (public void characters(char[] ch, int start, int end) throws SAXException {}):
    "No credit card number"
    au lieu de :
    "No credit card number is stored"


    si quelqu'un peut me mettre sur une piste ça serai cool.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 220
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void characters(char[] ch, int start, int end)
    Je ne connais pas SAX, mais tu récupères ton flux en sortie dans ch ?

    Si c'est le cas, tu n'as pas mis un tableau de char de taille trop petite, et du coup, a la lecture, il te tronque ta chaine ?

  3. #3
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 37
    Par défaut
    je ne crois pas, car d'autres séquences bcp plus longues passent.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 220
    Par défaut
    Et tes valeurs de lecture pour start et end sont les bonnes ?

    tu n'as pas oublié quelquepart de réévaluer ta valeur end pour la lecture de com ?

    Sinon, on peut voir ton code sur la lecture et la sortie ?

  5. #5
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 37
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    package com.lecture.xml;
     
    import org.xml.sax.*;
    import org.xml.sax.helpers.LocatorImpl;
    import java.util.Vector;
     
    public class XmlLangUtil implements ContentHandler {
    	String lang;
    	String element = "";
    	Vector vec_element = new Vector();
    	boolean bool = false;
    	int i = 0;
    	public XmlLangUtil(String langx) {
    		super(); 
    		locator = new LocatorImpl();
    		lang = langx;
    	}
     
    	public void setDocumentLocator(Locator value) {
    		locator =  value;
    	}
     
    	public void startElement(String nameSpaceURI, String localName, String rawName, Attributes attributs)
    				throws SAXException {
    		element = localName;
    		if(element.equals(lang))
    			bool = true;
     
    	}
     
    	public void characters(char[] ch, int start, int end) throws SAXException {
    		if(bool){
    			String str = new String(ch, start, end);
    			vec_element.addElement(str);
    			bool = false;
    		}
    	}
     
    	public void endDocument() throws SAXException {
    		XmlLang.res = vec_element;
    	}
     
    	public void endElement(String nameSpaceURI, String localName, String rawName) throws SAXException {}
     
    	public void startDocument() throws SAXException {}
     
    	public void startPrefixMapping(String prefix, String URI) throws SAXException {}
     
    	public void endPrefixMapping(String prefix) throws SAXException {}
     
    	public void ignorableWhitespace(char[] ch, int start, int end) throws SAXException {}
     
    	public void processingInstruction(String target, String data) throws SAXException {}
     
    	public void skippedEntity(String arg0) throws SAXException {}
     
    	private Locator locator;
     
    }

  6. #6
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Fais une recherche sur mon pseudo, tu trouveras un sujet dans lequel j'ai eu le même problème et la solution donnée et eprouvée depuis suffisemant longtemps pour que je te dise que ça fonctionne parfaitement!

  7. #7
    Membre averti
    Inscrit en
    Juillet 2002
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 37
    Par défaut
    ouffff!!!!

    que dire .... MERCI

  8. #8
    Membre Expert
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Par défaut
    Un tag STP
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ADO] Sauvegarde / lecture de recordset
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/09/2002, 16h54
  2. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43
  3. Pb Lecture de bitmap monochrome
    Par Loïc38 dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/07/2002, 18h24
  4. Lecture d'une image bitmap
    Par Geronimo dans le forum x86 32-bits / 64-bits
    Réponses: 18
    Dernier message: 28/06/2002, 12h01
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo