我无法设法使此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节点值(最好,该解决方案适用于主要浏览器),
  有什么建议吗?

提前致谢。

奥瓦特

最佳答案

<![CDATA[开始标记必须立即在XML标记之后开始,并且中间没有空格,并且]]>结束标记必须紧随XML标记之后,如下所示:

   <field2><![CDATA[
           <Comment>
              Test
           </Comment>
   ]]></field2>

关于javascript - ExtJS的XmlReader字段映射,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3123746/

10-11 20:17