Задать вопрос
ppxy
@ppxy

Как реализовать распаковку данных в base64 сжатых gzip из xml файла. Язык C#?

Есть xml файл из программы Tile (тайловый редактор карт) следующего содержания:
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="5" height="5" tilewidth="32" tileheight="32">
 <tileset firstgid="1" name="blocks1" tilewidth="32" tileheight="32" spacing="2" margin="2">
  <image source="blocks1.png" width="614" height="376"/>
 </tileset>
 <layer name="Tile Layer 1" width="5" height="5">
  <data encoding="base64" compression="gzip">
   H4sIAAAAAAAAC0tmYGBIAeJUBuJAMgH12OQByaQF+GQAAAA=
  </data>
 </layer>
</map>


Необходимо получить из элемента
<data encoding="base64" compression="gzip">
   H4sIAAAAAAAAC0tmYGBIAeJUBuJAMgH12OQByaQF+GQAAAA=
  </data>
список xml элементов.
Подскажите, с чего начинать.

PS
Вот настройки которые генерируют данный xml код:
5262f9b19dae49c0833ba8c09949b3e6.png
Код генерируемый без сжатия и без base64
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" width="5" height="5" tilewidth="32" tileheight="32">
 <tileset firstgid="1" name="blocks1" tilewidth="32" tileheight="32" spacing="2" margin="2">
  <image source="blocks1.png" width="614" height="376"/>
 </tileset>
 <layer name="Tile Layer 1" width="5" height="5">
  <data>
   <tile gid="99"/>
   <tile gid="100"/>
   <tile gid="101"/>
   <tile gid="0"/>
   <tile gid="0"/>
   <tile gid="0"/>
   <tile gid="0"/>
   <tile gid="0"/>
   <tile gid="0"/>
   <tile gid="0"/>
   <tile gid="0"/>
   <tile gid="0"/>
   <tile gid="99"/>
   <tile gid="100"/>
   <tile gid="101"/>
   <tile gid="0"/>
   <tile gid="0"/>
   <tile gid="0"/>
   <tile gid="0"/>
   <tile gid="0"/>
   <tile gid="99"/>
   <tile gid="100"/>
   <tile gid="101"/>
   <tile gid="0"/>
   <tile gid="0"/>
  </data>
 </layer>
</map>
  • Вопрос задан
  • 2675 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@soniq
Для распаковки gzip воспользуйтесь System.IO.Compression.GZipStream
Раскодировать Base64 можно с помощью System.Convert. FromBase64CharArray()
XML читайте как вам удобней.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы