Десериализация XML в POJO с динамическими тегами - PullRequest
0 голосов
/ 09 мая 2018

У меня есть XML -

<member>
     <name>product_type</name>
     <value>Regular</value>
 </member>
 <member>
     <name>product_nid</name>
     <value>
       <i4>12345</i4>
     </value>
 </member>

Итак, я создал Arraylist, так как у меня есть несколько полей Member в XML. Но проблема в том, что для некоторого тега значения есть тег, а для некоторых - фактическое значение.

Как мы можем справиться с этим в одном классе Java?

1 Ответ

0 голосов
/ 09 мая 2018

Как мы можем справиться с этим в том же классе Java?

Ты не должен. XML не видит это как <value>, иногда содержащий текст напрямую, а иногда содержащий элемент, содержащий текст.

XML видит это как <value>, содержащее смешанное содержимое, то есть текст, который может быть дополнительно аннотирован элементами <i4>, которые содержат часть текста, например:

<value>This is <i4>some</i4> fine <i4>text</i4>.</value>

Самый полезный способ справиться с ситуацией - это не быть в ней, а вместо этого использовать XML, как вы должны, для выражения того, что должно быть выражено. Итак, решите раз и навсегда, содержит ли <value> текст напрямую или содержит элемент, содержащий текст, и всегда следуйте этому единственному решению.

Возможно, вам потребуется высказать некоторую дополнительную информацию о значении, сообщив, является ли это i4 или чем-то еще. Это было бы хорошим использованием атрибута элемента value.

...