我有一个xml结构:
<xml>
<variable>
<values>
<enum>
<value>2</value>
<level>high</level>
</enum>
<enum>
<value>1</value>
<level>medium</level>
</enum>
<enum>
<value>0</value>
<level>low</level>
</enum>
</values>
</variable>
</xml>
现在,我将其传递给dataProvider:
namespace degro =“http://www.degro.org/td”; 使用命名空间degro; //这是绑定命名空间
dg.dataProvider = new XMLListCollection(xml.variable.value.enum);
并且dg datagrid的dataField是值和级别
但是当我运行该程序时它不会显示..
有没有人经历过这个?答案 0 :(得分:1)
答案 1 :(得分:0)
您发布的XML未标识命名空间。我不是一个动作脚本,但在其他编程语言中,如果你没有指定正确的命名空间,序列化器将无法生成输出。
您应该更新XML以包含命名空间定义(即<xml xmlns="http://www.degro.org/td"
&gt;或者您应该将提供程序设置为使用空白/空命名空间。
答案 2 :(得分:0)
这是你应该如何在flex
中访问命名空间的XMLprivate var degroNS:NameSpace = new NameSpace("http://www.degro.org/td");
//
//
//
dg.dataProvider = new XMLListCollection(xml.degroNS::variable.degroNS::value.degroNS::enum);//Assuming xml is the variable name for the xml
答案 3 :(得分:0)
这对我有用。检查一下,让我知道是否有帮助
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="application1_creationCompleteHandler(event)">
<s:layout>
<s:VerticalLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.collections.XMLListCollection;
import mx.events.FlexEvent;
private var ns:Namespace = new Namespace("http://www.degro.org/td");
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
dg.dataProvider = new XMLListCollection(dataXML.ns::variable.ns::values.ns::enum);
}
private function valueLabelFunction(item:Object,column:DataGridColumn):String
{
return item.ns::value+'';
}
private function levelLabelFunction(item:Object,column:DataGridColumn):String
{
return item.ns::level+'';
}
]]>
</fx:Script>
<fx:Declarations>
<fx:XML id="dataXML">
<xml xmlns="http://www.degro.org/td">
<variable>
<values>
<enum>
<value>2</value>
<level>high</level>
</enum>
<enum>
<value>1</value>
<level>medium</level>
</enum>
<enum>
<value>0</value>
<level>low</level>
</enum>
</values>
</variable>
</xml>
</fx:XML>
</fx:Declarations>
<mx:DataGrid id="dg">
<mx:columns>
<mx:DataGridColumn headerText="Value" labelFunction="valueLabelFunction"/>
<mx:DataGridColumn headerText="Level" labelFunction="levelLabelFunction"/>
</mx:columns>
</mx:DataGrid>
</s:Application>