使用命名空间 XML

发布于 2024-11-03 18:39:54 字数 885 浏览 3 评论 0 原文

我得到了一个 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 数据网格的数据字段是值和级别

,但当我运行程序时它不会显示。

以前有人经历过这种情况吗?

i got an xml structure :

<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>

now, i passed this into a dataProvider:

namespace degro ="http://www.degro.org/td";
use namespace degro; //this is to bind the namespace

dg.dataProvider = new XMLListCollection(xml.variable.value.enum);

and the dataFields of the dg datagrid are value and level

but it wont show when i run the programme..

anyone experienced this before?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

分分钟 2024-11-10 18:39:54

这是来自 Adob​​e 端的有用链接使用 XML 命名空间

您可以还需要阅读QName
对象代表 XML 元素和属性的限定名称

希望有帮助

This is Useful link from Adobe Side Using XML namespaces

you may also need to read about QName
an objects represent qualified names of XML elements and attributes

Hope that helps

情愿 2024-11-10 18:39:54

您发布的 XML 不标识名称空间。我不是一个动作脚本人员,但在其他编程语言中,如果您没有指定正确的名称空间,序列化器将无法生成输出。

您可能应该更新您的 XML 以包含命名空间定义(即 > 或者您应该将您的提供程序设置为使用空白/空命名空间。

The XML you posted does not identify a namespace. I'm not an actionscript guy, but in other programming languages if you don't specify the correct namespace the serializer is not going to be able to generate output.

You should probably either update your XML to include a namespace definition (i.e. <xml xmlns="http://www.degro.org/td"> or you should set-up your provider to use a blank/empty namespace.

回忆躺在深渊里 2024-11-10 18:39:54

这就是在 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

This is how you should access a namespaced XML in flex

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
假面具 2024-11-10 18:39:54

这对我有用。检查一下并告诉我是否有帮助

<?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>

This worked for me.Check it out and let me know if that helps

<?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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文