Probleme parsing xml

rouldtahar80 Messages postés 12 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 6 janvier 2010 - 9 juin 2009 à 12:14
siwaro Messages postés 7 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 1 avril 2011 - 1 avril 2011 à 11:52
Bonjour



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Pour les besoin de mon stage je doit parser un fichier XML ; jusque la ca va mais voila j deux problème



 




<ol style="MARGIN-TOP: 0cm" type="1">
<li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">la validation de mon XML ne passe pas car  le lien n’est pas bon</li>
<li class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">le fichier est trop volumineux</li>
</ol>

 




J’aimerai savoir s’il est possible de retirer la phase de validation ou de supprimer la ligne doctype avant, car quand je le supprime avant de le parser ca marche.



 




Autre chose est il possible de supprimer une balise avt de le charger en mémoire ou augmenter la mémoire ou toute autre solution qui me permettre de parser un fichier de 30 mo



 




Pour info j’utilise JDOM

6 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
9 juin 2009 à 12:56
Salut,

1. Si le fichier doit être validé, c'est pas pour rien... Un fichier xml doit être conforme pour être assuré qu'il respecte le format dans lequel il est censé être encodé. Plutôt que de vouloir supprimer le doctype, tu devrais plutôt corriger le problème à sa source : vérifier l'encodage des caractères de ton fichier...
2. JDom est très très pratique, très simple d'utilisation, mais malheureusement il prend beaucoup de mémoire. Pour un gros fichier, il vaut peut-être mieux passer par SAX : il ne parse pas tout le fichier pour représenter l'arbre DOM en mémoire, mais permet un parsing séquentiel en levant des événements à chaque nouvelle balise : c'est beaucoup plus long à maîtriser, mais c'est plus rapide et prends beaucoup moins de mémoire.
0
rouldtahar80 Messages postés 12 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 6 janvier 2010
9 juin 2009 à 14:02
je suis dacord avec toi.
le probleme je le conais c le system id qui point vers une adresse inexistant
le voila le doctyp
<!DOCTYPE project PUBLIC "-//Mentor Graphics Corporation//Project 1.57//EN" "C:/palette/apl/chs/dtd/project.dtd">
moi j pas besoin qu'il soit valider je dois jute detecter des champ vide et les coriger donc y'aurai t'il un moyen d'eviter la validation
et pour sax d'apres tous ce ke j lu il sert juste a lire le fichier, on peu pas modifier le xml
enfin d'apres ce que j lu
alors quelqu'un aurai t'il un solution a mon probleme svp
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
10 juin 2009 à 07:45
Pour la DTD non respectée, oui tu peux désactiver la validation en utilisant le bon paramètre :

SAXBuilder sax = newSAXBuilder(false); // false désactive la validation pour un SAXBuilder de JDOM.

SAX est une technique de parsing du fichier xml, tout comme DOM. La différence entre les deux, c'est que DOM construit un arbre de tout le document XML en mémoire, alors que SAX fait une lecture séquentielle du fichier et s'arrête à chaque balise rencontrée, ce qui le rend bien plus rapide pour les gros fichiers, et évite les problèmes de mémoire.
Dans l'absolu, DOM et SAX ne permettent pas d'écrire un fichier xml, ils ne permettent que de lire (parser le fichier). Par contre, avec DOM ou SAX rien ne t'empêche de faire tes propres routines pour écrire un fichier xml (c'est ce que propose JDom d'ailleurs).
0
rouldtahar80 Messages postés 12 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 6 janvier 2010
11 juin 2009 à 10:18
merci pour ta reponce
pour SAXBuilder sax = newSAXBuilder(false); je les essayer ca ne marche pas, le programme bloc tjr sur doc type

et est ce ke t'aurai pas un exemple pour sax
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rouldtahar80 Messages postés 12 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 6 janvier 2010
17 juin 2009 à 10:32
re bonjour
voila j'ai reussi a regler le probleme de memoir en augmentant la memoir alouer a java
mais je bloque tjr sur doctype, y'a t'il une solution a ce probleme ou pas
et est ce que le fait d'augmenter la memoire de cette facon va s'impacter lors de la creation de l'executable
merci d'avance pour toute vos reponce
0
siwaro Messages postés 7 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 1 avril 2011 2
1 avril 2011 à 11:52
Bonjour,

Je développe une application aussi sous android pour parser un fichier XML contenant un flux d'actualités, mon probléme est quand je parse un XML avec encodage UTF8 ça passe mais quand c'est avec ISO-8859-1, ça bloque!!
Est-ce que c'est à cause de l'encodage ?? J'ai pas acces au serveur donc je ne peus pas savoir si ça marcherai si je change l'encodage en UTF-8!

Merci pour votre aide!!!
0
Rejoignez-nous