我无法让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节点值(最好是解决方案适用于主流浏览器), 有什么建议吗?
提前致谢。
Owat
答案 0 :(得分:5)
<![CDATA[
开始标记必须在XML标记之后立即开始,其间没有空格,并且]]>
结束标记必须紧跟XML标记关闭,如下所示:
<field2><![CDATA[
<Comment>
Test
</Comment>
]]></field2>