Как структурировать многомерный массив в файле XML? - PullRequest
3 голосов
/ 15 марта 2011

У меня есть многомерный массив, такой как:

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

Теперь я ищу хороший способ сохранить структуру (без кода) этого массива в XML-файле. Лучшее решение, которое у меня есть, это:

<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>

У кого-нибудь есть лучшее решение?

Ответы [ 3 ]

7 голосов
/ 15 марта 2011

Так как массив массивов ...

<GreatCity index =0>
   <Name index="0">Vancouver</Name>
   <Name index="1">Charlottetown</Name>
</GreatCity>
etc...
2 голосов
/ 15 марта 2011

Ваше решение может быть достаточно компактным, но я думаю, что это сложно для десериализации (например, получить массив из XML). На самом деле, вы должны знать, каков размер массива: для этого вы должны отсканировать весь XML-документ. Я бы предпочел упорядоченную структуру без индексов атрибутов:

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

В этом примере я вставил два пустых элемента в точку и пустую строку / ячейку. На этом этапе вы можете отсканировать документ XML, заполнив неровный массив.

2 голосов
/ 15 марта 2011
<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>
...