使用XML文件中的列表作为extJS树的节点和叶子的数据

时间:2015-03-12 05:40:44

标签: xml parsing extjs treepanel

我有一个包含两个列表的xml文件

 <bean id="reportsDef" class="XXXXXXXX">
      <property name="reports">
         <list>
            <value>-Name A</value>
            <value>Name B</value>

            <value>-Name C</value>
            <value>Name D</value>

            <value>-Name E</value>
            <value>Name F</value>
            <value>Name G</value>
         </list>
      </property>
      <property name="reportUrls">
         <list>
           <value></value>
           <value>url B</value>
           <value></value>
           <value>url D</value>
           <value></value>
           <value>url F</value>
           <value>url G</value>
         </list>
      </property>   
   </bean>

我想使用这个xml文件中的这两个列表作为extJS树的数据。 列表“reportsDEF”具有节点和叶子的标题,列表“reportUrls”具有在单击这些叶子时将打开的链接。 任何人都可以告诉我该怎么做.. 感谢..

1 个答案:

答案 0 :(得分:0)

这种格式不是ExtJS标准创建模型的方法。因此,您的目标是创建Store并使用基于此XML的模型填充它。你怎么能实现它:

  1. 最好的方法是更改​​XML格式如果可以的话。它应该是这样的:
  2.    <root>
          <children>
             <element>
                <leaf>true</leaf>
                <text>detention</text>
             </element>
             <element>
                <children>
                   <element>
                      <leaf>true</leaf>
                      <text>book report</text>
                   </element>
                   <element>
                      <leaf>true</leaf>
                      <text>algebra</text>
                   </element>
                </children>
                <expanded>true</expanded>
                <text>homework</text>
             </element>
             <element>
                <leaf>true</leaf>
                <text>buy lottery tickets</text>
             </element>
          </children>
          <expanded>true</expanded>
       </root>
    
    1. 您可以扩展Ext.data.reader.Xml类并重写readRecords方法。在该方法中,您必须手动解析XML并返回一组模型。您可以在此处获得该课程的来源http://docs.sencha.com/extjs/5.1/5.1.0-apidocs/source/Xml.html#Ext-data-reader-Xml-method-readRecords

    2. 您始终可以使用Ext.Ajax.requesthttp://docs.sencha.com/extjs/5.1/5.1.0-apidocs/#!/api/Ext.data.Connection-method-request)并在'success'处理程序上手动解析数据,使用已解析的数据填充商店并将其设置为树状区域