在id =“key”value =“value”属性格式中读取XML?

时间:2012-06-20 13:55:38

标签: xml extjs extjs4

如何将属性格式的XML读入ExtJS Store,其中包含键/值 在一行中指定为id / 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>

更传统的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>

1 个答案:

答案 0 :(得分:3)

它没有很好的文档记录,但是您的字段的映射可以是Ext.dom.Query接受的任何表达式。因此,如果您通常使用“title”的简单映射来选择名为“title”的子标记,则可以包含更复杂的选择器。在这种情况下,您要选择ID列属性与您要查找的字段名称匹配的“column”标记的“value”属性,因此在您的模型或商店中,您可以像这样定义字段:

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