2008-11-05 3 views
0

Я пытаюсь десериализации структуры XML, которая выглядит следующим образом:Десериализация устаревшего XML-структуру в XStream

<somecontainer> 
    <key1>Value1</key1> 
    <key1>Value2</key1> 
    <key2>Value3</key2> 
    <key2>Value4</key2> 
</somecontainer> 

Я могу в принципе выбрать, какой вид, если элемент десериализовать к, возможно, что-то вроде списка парных или что-то. Суть здесь в том, что имена элементов - это ключи.

И нет, я не могу изменить структуру xml. Кто-нибудь знает, как это сделать с помощью xstream?

ответ

1

Я обнаружил, что для этого случая необходим пользовательский сериализатор, никоим образом не обойдя его.

Аналогично

<node attr1="xxx">value1</node> 

также нуждается в пользовательский сериализатор.

1

Я не использовал XStream через некоторое время, но implicit collections, вероятно, делает то, что вы хотите.

+0

У него будет список ключевых объектов, но для меня это похоже на логическое преобразование. – Caoilte 2010-05-20 20:56:28

1

Вы можете также рассмотреть возможность преобразования XSL документа в нормализованную форму перед десериализацией. Это устраняет необходимость в специальном сериализаторе.

Я полагаю, что компромисс, если проще поддерживать собственный сериализатор или шаг преобразования XSL?

+0

Ну, тогда мне нужно было бы сделать двухстороннюю трансаформацию, и я полагаю, что это делает собственный сериализатор так же хорошо. Однако я сохраню его в своей панели инструментов;) – krosenvold 2008-11-16 18:52:03

Смежные вопросы