Bonjour,
J'ai r�cup�r� un fichier XML open source tr�s volumineux (>30 Mo)
-Ce fichier va �voluer (re DL r�guli�rement fonction des mises � jour) donc je ne peut pas faire de conversion en un autre format .
-Je ne fait dessus que de la lecture (pas d'�criture).
-Je souhaite un acc�s rapide par flux sans chargement du fichier XML dans son entier (ou peut �tre une bonne fois pour toute au d�marrage mais sans bouffer la m�moire).
Que me conseillez-vous comme approche?
XmlTextreader -> conseil de l'abandonn�e au profit de XMLReader
Xml to Linq -> sympas pour les requ�tes mais n�cessite de charger la base en entier au pr�alable (enfin je crois)
XElement -> idem (enfin je crois)
Xpath via XmlNodeList pas mal mais j'en chie pour faire mes requ�tes...
le DTD est de cette forme
je souhaite des requ�tes type :
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 <!ELEMENT WN (SYNSET+)> <!ELEMENT sl.dbxml (SYNSET+)> <!ELEMENT SYNSET (STAMP?, ILR*, SUMO*, G_SYN?, ID, SYNONYM, DEF, USAGE*, SNOTE?, BCS?, DOMAIN?, NL*, POS)> <!--ELEMENT SYNSET (ID | POS | SYNONYM | ILR | DEF | USAGE | SNOTE | BCS | DOMAIN | NL | SUMO | G_SYN | STAMP)+ --> <!ELEMENT ID (#PCDATA)> <!ELEMENT POS (#PCDATA)> <!ELEMENT SYNONYM (LITERAL | WORD)+> <!ELEMENT LITERAL (#PCDATA)> <!ATTLIST LITERAL lnote CDATA #IMPLIED sense CDATA #IMPLIED> <!ELEMENT WORD (#PCDATA)> <!ELEMENT ILR (#PCDATA)> <!ATTLIST ILR type CDATA #REQUIRED> <!ELEMENT DEF (#PCDATA)> <!ELEMENT USAGE (#PCDATA)> <!ELEMENT SNOTE (#PCDATA)> <!ELEMENT BCS (#PCDATA)> <!ELEMENT DOMAIN (#PCDATA)> <!ELEMENT NL (#PCDATA)> <!ELEMENT SUMO (#PCDATA)> <!ATTLIST SUMO type CDATA #REQUIRED> <!ELEMENT G_SYN (#PCDATA)> <!ELEMENT STAMP (#PCDATA)>
-chercher dans le fichier XML, uniquement dans les n�uds LITERAL la valeur "blabla". (la c'est facile)
-a partir de cette valeur remonte pour atteindre le n�ud le plus haut (SYNSET) et r�cup�re son ID (j'arrive a afficher tous ce qui se trouve entre les balises <SYNSET> mais je ne sais pas l'exploiter.)
-r�cup�re tous ces ID puis trouve la valeur <POS> (la aussi �a va) plus bas dans l'arbre que LITERAL.
Voila le type de requ�te. J'ai tester la plupart des options rapidement (j'ai du mal avec les saut de n�ud) mais je ne sais laquelle choisir.
Merci de votre aide.





R�pondre avec citation




Partager