Bonjour à tous,
J'ai une difficulté avec un traitement de données xml.
Je récupère sur un serveur distant (une API) des données au format xml, j'utilise DOM pour le traitement de celui-ci. En fait le Webservice renvoie une chaîne de caractère avec tout à l'intérieur. J'utilise donc loadXML pour tout récupérer.
Mon problème est que je n'ai pas la main sur ce xml et sur la façon dont il est créé.
le format du xml ressemble à ça :
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| <tree path="">
<item id="test" name="test" isFolder="true" isLibrary="true" path="test" >
<item id="iddoc1" name="doc1" isFolder="false" isLibrary="false" hasPreviewErrors="false" iconURL="blabla" path="test\doc1.xml" >
<fileInfo fileIndexed="2012-09-14 16:03:19" numPages="2" resolution="72" width="155.903" height="240.941" fileSize="103.48 Kb">
<metaData>
<item name="Num. Pages" value="2" />
<item name="Width" value="55 mm" />
<item name="Height" value="85 mm" />
</metaData>
<boxes />
</fileInfo>
</item>
<item id="iddoc2" name="doc2" isFolder="false" isLibrary="false" hasPreviewErrors="false" iconURL="blabla2" path="test\doc2.xml" >
<fileInfo fileIndexed="2012-09-07 10:38:47" numPages="2" resolution="72" width="155.903" height="240.941" fileSize="103.45 Kb">
<metaData>
<item name="Num. Pages" value="2" />
<item name="Width" value="55 mm" />
<item name="Height" value="85 mm" />
</metaData>
<boxes />
</fileInfo>
</item>
</item>
<item id="test2" name="test2" isFolder="true" isLibrary="true" path="test2" >
<item id="test2\demodocuments" name="demodocuments" isFolder="true" isLibrary="false" path="test2\demodocuments" >
<item id="test2\demodocuments\BC" name="BC" isFolder="true" isLibrary="false" path="test2\demodocuments\BC" >
<item id="idBC" name="BCV" isFolder="false" isLibrary="false" hasPreviewErrors="false" iconURL="" path="test2\demodocuments\BC\BCV.xml" >
<fileInfo fileIndexed="2012-09-18 16:27:59" numPages="1" resolution="72" width="155.903" height="240.941" fileSize="18.13 Kb">
<metaData><item name="Num. Pages" value="1" />
<item name="Width" value="55mm" />
<item name="Height" value="85mm" />
</metaData>
<boxes />
</fileInfo>
</item>
<item id="idBC_DataSource" name="BC_DataSource" isFolder="false" isLibrary="false" hasPreviewErrors="false" iconURL="blablaBC_DataSource" path="test2\demodocuments\BC\BC_DataSource.xml" >
<fileInfo fileIndexed="2012-09-14 16:11:27" numPages="2" resolution="72" width="155.903" height="240.941" fileSize="103.45 Kb">
<metaData>
<item name="Num. Pages" value="2" />
<item name="Width" value="55 mm" />
<item name="Height" value="85 mm" />
</metaData>
<boxes />
</fileInfo>
</item>
</item>
<item id="test2\demodocuments\CC" name="CC" isFolder="true" isLibrary="false" path="test2\demodocuments\CC" >
<item id="test2\demodocuments\CC\Snippets" name="Snippets" isFolder="true" isLibrary="false" path="test2\demodocuments\CC\Snippets" >
<item id="idKV-demo" name="KV-demo" isFolder="false" isLibrary="false" hasPreviewErrors="false" iconURL="blablaKV-demo" path="test2\demodocuments\CC\Snippets\KV-demo.xml" >
<fileInfo fileIndexed="2012-10-01 16:51:36" numPages="1" resolution="72" width="425.19" height="283.46" fileSize="59.97 Kb">
<metaData>
<item name="Num. Pages" value="1" />
<item name="Width" value="150 mm" />
<item name="Height" value="100 mm" />
</metaData>
<boxes />
</fileInfo>
</item>
<item id="idKV" name="KV" isFolder="false" isLibrary="false" hasPreviewErrors="false" iconURL="blablaKV" path="test2\demodocuments\CC\Snippets\KV.xml" >
<fileInfo fileIndexed="2012-10-01 16:51:36" numPages="1" resolution="72" width="425.19" height="283.46" fileSize="103.89 Kb">
<metaData>
<item name="Num. Pages" value="1" />
<item name="Width" value="150 mm" />
<item name="Height" value="100 mm" />
</metaData>
<boxes />
</fileInfo>
</item>
</item>
<item id="idCCd" name="CCd" isFolder="false" isLibrary="false" hasPreviewErrors="false" iconURL="blablaCCd" path="test2\demodocuments\CC\CCd.xml" >
<fileInfo fileIndexed="2012-04-19 17:34:08" numPages="1" resolution="72" width="425.19" height="283.46" fileSize="137.46 Kb">
<metaData>
<item name="Num. Pages" value="1" />
<item name="Width" value="150 mm" />
<item name="Height" value="100 mm" />
</metaData>
<boxes />
</fileInfo>
</item>
</item>
<item id="idtoto" name="toto" isFolder="false" isLibrary="false" hasPreviewErrors="false" iconURL="blablatoto" path="test2\demodocuments\toto.xml" >
<fileInfo fileIndexed="2012-10-01 16:51:36" numPages="1" resolution="72" width="425.19" height="283.46" fileSize="59.97 Kb">
<metaData>
<item name="Num. Pages" value="1" />
<item name="Width" value="150 mm" />
<item name="Height" value="100 mm" />
</metaData>
<boxes />
</fileInfo>
</item>
</item>
</item>
</tree> |
et là comme vous pouvez le voir la grande majorité des noeuds on le même nom
Je voudrais traiter ce xml, pour en faire une liste du type :
-test
- document doc1 (avec nom et photo)
- document doc2 (avec nom et photo)
-test 2
-demodocuments
- document BCV (avec nom et photo)
- document BC_DataSource (avec nom et photo)
- document KV-demo (avec nom et photo)
- document KV (avec nom et photo)
- document CCd (avec nom et photo)
- document toto (avec nom et photo)
Mais je n'arrive pas à faire ça, je m’emmêle les pinceaux dans les boucle les if et autre. N'y a t-il pas un moyen efficace de mettre par exemple tout dans des tableau ?
Là j'approche la surchauffe cérébrale lol
Merci à ceux qui prendront le temps de me lire mais surtout à ceux qui essayeront (et y arriveront) de m'aider ^^
Partager