2011-03-15 3 views
3

J'ai un tableau à plusieurs dimensions telles que:Comment structurer un tableau multidimensionnel dans un fichier XML?

String[][] greatCities = new String[2][2]; 
greatCities[0][0] = "Vancouver"; 
greatCities[0][1] = "Charlottetown"; 
greatCities[1][0] = "Zürich"; 
greatCities[1][1] = "Bern"; 

Maintenant, je suis à la recherche d'une bonne façon d'économiser la structure (pas de code) ce tableau dans un fichier xml. La meilleure solution que j'ai jusqu'à maintenant est:

<GreatCities> 
    <Item index0="0" index1="0">Vancouver</Item> 
    <Item index0="0" index1="1">Charlottetown</Item> 
    <Item index0="1" index1="0">Zürich</Item> 
    <Item index0="1" index1="1">Bern</Item> 
</GreatCities> 

Quelqu'un at-il une meilleure solution?

+1

J'ai une suspicion rampante que ce tableau 2D est en fait une projection d'une autre structure de données. Une carte simple, peut-être? Une liste de paires? Qu'est-ce que cela veut dire si "Vancouver" est à 0,1 par rapport à 0,0? La réponse influencerait probablement la façon dont cela devrait être cartographié. –

+0

Cela me ressemble aussi. Quelle information est véhiculée par l'agencement de la table à deux dimensions? Sans le savoir, il est impossible de concevoir une structure XML qui capture l'information. –

+0

Je suis d'accord avec vous, totalement! Mais ... (cela peut sembler peu professionnel) nous ne savons pas à quoi ressemble la structure de données ... nous obtenons un fichier texte qui est scanné ligne par ligne et doit être converti en une structure xml pour une utilisation future (par exemple, comparer etc). Il est juste important qu'aucune information ne soit perdue. –

Répondre

7

Comme son efficace un tableau de tableaux ...

<GreatCity index =0> 
    <Name index="0">Vancouver</Name> 
    <Name index="1">Charlottetown</Name> 
</GreatCity> 
etc... 
+0

Nous venons d'avoir la même idée. :-) Nous pensons que c'est la meilleure façon. Je vous remercie! –

2
<GreatCities> 
    <Items index="0"> 
    <Item index="0">Vancouver</Item> 
    <Item index="1">Charlottetown</Item> 
    </Items> 
    <Items index="1"> 
    <Item index="0">Zürich</Item> 
    <Item index="1">Bern</Item> 
    </Items> 
</GreatCities> 
2

Votre solution peut être assez compact, mais je pense est compliqué pour la désérialisation (par exemple récupérer le tableau à partir du xml). En fait, vous devriez savoir dès que possible quelle est la taille du tableau: pour cela, vous devez scanner tout le document XML. Je préfère préfère une structure ordonnée, sans indices d'attributs:

<GreatCities> 
    <GreatCity> 
    <Name>Vancouver</Name> 
    <Name>Charlottetown</Name> 
    </GreatCity> 
    <GreatCity /> 
    <GreatCity> 
    <Name>Zürich</Name> 
    <Name/> 
    <Name>Bern</Name> 
    </GreatCity> 
</GreatCities> 

Dans cet échantillon avoir branché deux éléments vides à point et ligne/cellule vide. À ce stade, vous pouvez numériser le document XML en remplissant le tableau en dents de scie.

+0

Malheureusement, nous avons besoin des index, car nous mappons un fichier texte propriétaire à un fichier XML en analysant ligne par ligne et les valeurs du tableau ne peuvent pas être classées dans un fichier texte, mais nous aurons des informations sur leur index. Cependant, je suis d'accord avec votre solution dans une autre situation. Je vous remercie! –

Questions connexes