使用名称空间的XML
我得到了一个xml结构:使用名称空间的XML,xml,apache-flex,actionscript-3,flex4,Xml,Apache Flex,Actionscript 3,Flex4,我得到了一个xml结构: <xml> <variable> <values> <enum> <value>2</value> <level>high</level> </enum> <enum>
<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>
2.
高的
1.
中等的
0
低的
现在,我将其传递给数据提供程序:
命名空间degro=”http://www.degro.org/td";
使用名称空间degro//这是为了绑定名称空间
dg.dataProvider=newXMLListCollection(xml.variable.value.enum)
dg datagrid的数据字段是值和级别
但是当我运行这个程序时它不会显示
以前有人遇到过这种情况吗?您发布的XML没有标识名称空间。我不是actionscript的人,但在其他编程语言中,如果不指定正确的名称空间,序列化程序将无法生成输出
您可能应该更新XML以包含名称空间定义(即
),或者设置提供者以使用空白/空名称空间。这是在flex中访问名称空间XML的方式
private 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
这是Adobe端的有用链接
您可能还需要阅读
对象表示XML元素和属性的限定名称
希望这对我有帮助。请查看,如果有帮助,请告诉我
<?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>
2.
高的
1.
中等的
0
低的
Hi,我假设xml是按标题命名的..因此,itz在那里,但我只是想知道如何正确绑定..从数据提供程序xml中删除名称空间时工作正常吗?是的,删除名称空间时工作正常..这就是为什么我知道名称空间是它的原因..我尝试了关键字use namespace degroNs,但目前它不起作用。只需检查我的代码示例。无法编辑此答案。因此将其作为单独的答案发布。如果有帮助,请告诉我。@henry-当您“删除命名空间”时,您说它工作得很好。是从XML文件中删除命名空间,还是从actionscript代码中删除命名空间?从XML文件中删除命名空间。