Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
80 / 80 / 39
Регистрация: 17.02.2016
Сообщений: 464
1

Маршалинг XStream

08.08.2020, 21:05. Просмотров 2335. Ответов 1

Доброго времени суток.
Использую XStream для маршалинга хмл.
condition - Map обьявлен так:
Java
1
2
3
    @XStreamAlias("condition")
    @XStreamAsAttribute
    private Map <Condition,PCondition> condition = new HashMap <Condition,PCondition>();
подключен конвертер:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class MapEntryConverter implements Converter
{
    public void marshal(Object value, HierarchicalStreamWriter writer, MarshallingContext context)
    {
    Map <Condition,PCondition> condition = (Map <Condition,PCondition>) value;
        for(Entry <Condition,PCondition> cond : condition.entrySet())
        {
            writer.startNode(cond.getKey().name());
             PCondition val = cond.getValue();
            if (null != val)
            {
                writer.setValue(val.toString());
            }
            writer.endNode();
        }
        
    }
на выходе получаю хмл:

XML
1
2
3
4
5
6
7
8
9
10
11
12
    <rare_debuff_skills>
      <skill id="1" >
        <condition/>
      </skill>
    </rare_debuff_skills>
    <counterattack_skills>
      <skill id="2">
        <condition>
          <TARGET_SKILL_EFFECT>(176,420,536,917,425,292,789,785,406,769,770,768,521,414)</TARGET_SKILL_EFFECT>
        </condition>
      </skill>
    </counterattack_skills>
Как видно на примере выше, когда Map пустой - создает пустой узел <condition/>, подскажите можно ли убрать пустые узлы с конечного хмл файла
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.08.2020, 21:05
Ответы с готовыми решениями:

Exception после вызова XStream.toXML()
Есть класс: public class Person { public String name; public Person() {...

XStream не конвертирует числа 8 и 9, если перед ними стоят нули
Как настроить XStream, если при вызове метода fromXML(&quot;имя файла&quot;), он выводит ошибки только тогда,...

Маршалинг C++ wchar_t** в C#
Доброго времени суток! Столкнулся со следующей задачей. Есть библиотека, в библиотеке есть...

Маршалинг string
Возник затуп при обращении к dll на с++. Как связан .net'овский string и...

1
9 / 8 / 12
Регистрация: 14.08.2016
Сообщений: 59
31.08.2020, 07:26 2
Проверь val.toString() на null.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2020, 07:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Маршалинг и структура
Добрый день, товарищи. Есть библиотека С++, в которой имеется структура и метод с нею...

Маршалинг структуры C# --> C
В неуправляемом коде (bla.dll) есть структура: typedef struct { ULONG32 a; UINT8 b; UINT8...

Маршалинг данных
Необходимо передавать массивы данных из управляемого кода в неуправляемый. Почитал про атрибуты ,...

Маршалинг двухмерного массива
Здравствуйте. Это пример из гайда с нашего форума для одномерного массива. public bool...

Маршалинг Waveform Audio
Привет. Возникла необходимость сделать wrapper для c# библиотеки Windows Waveform Audio. Пока...

Что такое маршалинг?
Можете по простому объяснить что это такое. И пример, где это используется и для чего он нужен.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.