2016-08-23 2 views
1
<?xml version="1.0" encoding="UTF-8"?> 
    <code_details> 
     <summer_redeem_code>54</summer_redeem_code> 
     <winter_redeem_code>38</winter_redeem_code> 
    </code_details> 

В приведенном выше коде, вспомните summer_redeem_code и winter_redeem_code как теги, которые хотят хранить несколько значений. Представьте себе, что summer_redeem_code передают значения, такие как 54,56,57, но может отображаться только первый, то есть 54. Кроме того, winter_redeem_code передают значения, такие как 38,48,58, но может отображаться только первый, то есть 38.Как представить несколько значений для одного узла в XML?

Вопрос: Я пытаюсь выяснить, что представляет собой лучший способ представления нескольких значений для одного элемента/атрибута/тега в XML, чтобы я мог отображать больше, чем только первый, который я могу сделать сейчас ?

В настоящее время эти теги относятся к 1: 1, и я хочу сделать их 1-много (если это имеет смысл?). В принципе, поиск метода (тегов), который может вместить все значения.

Ограничения:
1) теги summer_redeem_code и winter_redeem_code не могут быть удалены, поскольку они будут нарушать синтаксический анализатор, который не может быть изменен.
Возможное решение: это, вероятно, потребует оставить их как есть и ввести новый элемент из 1-го с новым тегом - возможно, «redeem_codes» и поместить под него.

+1

Я не вижу ничего плохого в том, что вы хотели бы сделать ... magine, которому summer_redeem_code передают значения, такие как 54,56,57, но может отображаться только первый, то есть 54. Почему так? Есть ли у вас контроль над форматом? Или вы можете контролировать разбор кода? –

+0

Хороший вопрос. Данные извлекаются из другого фида (по которому я не контролирую) и хранятся в этих двух тегах. В настоящее время логика выборки может извлекать только первое значение (если оно имеет несколько) для любого данного узла. Я пытаюсь расширить логику, чтобы получить несколько, но до этого хотелось знать, как я мог бы представлять их в XML, и, следовательно, вопрос! – Fenil

ответ

3

наиболее распространенных способов сделать это являются:

  1. Обмотанные последовательности элементов

    <codes> 
        <winter> 
        <winterCode>54</winterCode> 
        <winterCode>58</winterCode> 
        <winterCode>92</winterCode> 
        </winter> 
        <summer> 
        <summerCode>85</summerCode> 
        <summerCode>32</summerCode> 
        </summer> 
    </codes> 
    

(2) То же без элементов обертки

<codes> 
    <winterCode>54</winterCode> 
    <winterCode>58</winterCode> 
    <winterCode>92</winterCode> 
    <summerCode>85</summerCode> 
    <summerCode>32</summerCode> 
</codes> 

(3) Содержание списка

<codes> 
    <winterCode>54 58 92</winterCode> 
    <summerCode>85 32</summerCode> 
</codes> 

Выбор между ними предполагает компромисс: легкость создания контента, легкость проверки, легкость чтения контента, размер, совместимость с прошлым, расширяемость в будущем. Только вы можете решить, что вам подходит.

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