2

この Ext.data.XmlReader の CDATA フィールド マッピングを機能させることができません。

 <script>
var store = new Ext.data.Store({
    url: '../data/data.xml',
    // specify a XmlReader  
    reader: new Ext.data.XmlReader({ 
    record: 'entry', 
    fields:[
            { name: 'field1', type: 'date', mapping:'field1'},  
            { name: 'field2', type: 'string', mapping:'field2'} 
           ] 
    }),
    listeners:{load:function(store,recs)
              {  //alert row1.field1 and row1.field2
                 var s = 'field1 = '+recs[0].get('field1') + '\nfield2 = '+recs[0].get('field2');
                 alert(s);
              }
     }
   });

store.load();
 </script>

data.xml の XML コンテンツは次のとおりです。

    <?xml version="1.0" encoding="UTF-8"?>
    <feed xmlns="http://www.w3.org/2005/Atom"> 
     <entry>  
       <field1>01/01/2006</field1>
       <field2>
           <![CDATA[
               <Comment>
                  Test
               </Comment>
             ]]>
       </field2>
      </entry>  
     </feed>

ストアが読み込みを終了したとき。(リスナーからの) アラートには、次のようなものが表示されます。

field1 = Sun Jan 01 2006 00:00:00 GMT+0700 (ICT)
field2 = 

しかし、私はこれを見ると思っていました:

field1 = Sun Jan 01 2006 00:00:00 GMT+0700 (ICT)
field2 = <Comment>
           Test
         </Comment>

これらの問題は chrome と safari でのみ発生します。IE6 で動作します。

field2 ノードの値を取得するにはどうすればよいですか (できれば、ソリューションは主要なブラウザーで機能します)、何か提案はありますか?

前もって感謝します。

オワット

4

1 に答える 1

5

次のように、<![CDATA[開始タグは XML タグの直後にスペースを入れずに開始する必要があり、]]>終了タグの直後に XML タグの終了が続く必要があります。

   <field2><![CDATA[
           <Comment>
              Test
           </Comment>
   ]]></field2>
于 2010-06-26T13:46:39.297 に答える