2012-06-20 2 views
4

Comment puis-je lire le format XML dans le format d'attribut dans un magasin ExtJS, où les valeurs/clés sont spécifiées sur une ligne comme ID/valeur? Je suis plus familier avec le deuxième format donné ci-dessous.Lecture du format d'attribut XML dans id = "key" value = "value"?

 
<?xml version="1.0" encoding="UTF-8"?> 
<XMLResponse> 
    <data> 
     <row> 
      <column id="title" value="Star Wars"/> 
      <column id="director" value="Lucas"/> 
      <column id="year" value="1977"/> 
     </row> 
     <row> 
      <column id="title" value="Jaws"/> 
      <column id="director" value="Spielberg"/> 
      <column id="year" value="1975"/> 
     </row> 
    </data> 
</XMLResponse> 

La manière la plus traditionnelle d'écrire du XML.

 
<?xml version="1.0" encoding="UTF-8"?> 
<XMLResponse> 
    <data> 
     <row> 
      <title>Star Wars</title> 
      <director>Lucas</director> 
      <year>1977</year> 
     </row> 
     <row> 
      <title>Jaws</title> 
      <director>Spielberg</director> 
      <year>1975</year> 
     </row> 
    </data> 
</XMLResponse> 

Répondre

3

Il est pas très bien documenté, mais les mises en correspondance pour vos champs peut être une expression acceptée par Ext.dom.Query. Ainsi, lorsque vous avez normalement un mappage simple de "title" pour sélectionner une balise enfant nommée "title", vous pouvez inclure un sélecteur plus complexe. Dans ce cas, vous voulez sélectionner l'attribut "value" des balises "column" dont les attributs d'ID correspondent au nom du champ que vous recherchez. Dans votre modèle ou magasin, vous pouvez définir vos champs comme suit:

fields: [ 
    { name: 'title', mapping: 'column[id=title]@value' }, 
    { name: 'director', mapping: 'column[id=director]@value' }, 
    { name: 'year', mapping: 'column[id=year]@value' } 
],