2016-08-23 3 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> 

Dans le code ci-dessus, pensez à summer_redeem_code et winter_redeem_code en tant que balises qui souhaitent stocker plusieurs valeurs. Imaginez que summer_redeem_code est passé des valeurs telles que 54,56,57 mais seulement le premier, c'est-à-dire 54, peut être affiché. En outre, winter_redeem_code reçoit des valeurs telles que 38, 48, 58, mais seule la première, c'est-à-dire 38, peut être affichée. J'essaie de comprendre quelle est la meilleure façon de représenter plusieurs valeurs pour un seul élément/attribut/tag en XML afin que je puisse afficher plus que le premier que je peux faire pour l'instant ?Comment représenter plusieurs valeurs pour un seul noeud en XML?

Actuellement, ces balises sont en relation 1: 1 et je veux les rendre 1-plusieurs (si cela a du sens?). Fondamentalement, la recherche d'une méthode (tags) qui peut accueillir toutes les valeurs.

Contraintes:
1) balises summer_redeem_code et winter_redeem_code ne peuvent pas être supprimés car ils casseraient un analyseur qui ne peut pas être modifié.
Solution possible: Cela nécessiterait probablement de les laisser tels quels et d'introduire un nouvel élément de 1-item avec une nouvelle étiquette - peut-être "redeem_codes" et de mettre ceux-ci en dessous.

+1

Je ne vois rien de mal à ce que vous voulez faire ... magine que summer_redeem_code est passé des valeurs telles que 54,56,57 mais seulement le premier, c'est-à-dire 54, peut être affiché. Pourquoi est-ce? Avez-vous un contrôle sur le format? Ou vous pouvez seulement contrôler l'analyse du code? –

+0

Bonne question. Les données sont récupérées à partir d'un autre flux (sur lequel je n'ai aucun contrôle) et stockées dans ces deux balises. Actuellement, la logique de récupération ne peut extraire que la première valeur (si elle en a plusieurs) pour un nœud donné. Je cherche à élargir la logique pour aller chercher plusieurs mais auparavant je voulais savoir comment je pourrais les représenter en XML, d'où la question! – Fenil

Répondre

3

Les façons les plus courantes de le faire sont les suivantes:

  1. séquences enveloppé d'éléments

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

(2) Le même sans les éléments d'enveloppe

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

(3) Contenu coté

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

Le choix entre ces implique des compromis: la facilité de création du contenu, la facilité de la validation, la facilité de lecture du contenu, la taille, la compatibilité avec le passé, dans l'avenir l'extensibilité. Vous seul pouvez décider ce qui vous convient le mieux.