先来段代码
//测试
var xml1:XML =
<menu>
<menuitem code="a" lv="1"/>
<menuitem code="b" lv="2"/>
<menuitem code="c" lv="3"/>
<menuitem code="d" lv="2" />
<menuitem code="e" lv="2" />
<menuitem code="f" lv="2" />
<menuitem code="g" lv="2" />
</menu>;
var xml2:XML = new XML("<menu>" + xml1.menuitem.(@lv == 1) + "</menu>");
var xml3:XML = new XML("<menu>" + xml1.menuitem.(@lv == 2) + "</menu>");
var xml4:XML = new XML("<menu>" + xml1.menuitem.(@lv == 3) + "</menu>");
trace("////////////////////////////");
trace("xml2 = " + xml2);
trace("////////////////////////////");
trace("xml3 = " + xml3);
trace("////////////////////////////");
trace("xml4 = " + xml4);
大家认为它应该输出什么?
实际的结果是:
////////////////////////////
xml2 =
////////////////////////////
xml3 = <menu>
<menuitem code="b" lv="2"/>
<menuitem code="d" lv="2"/>
<menuitem code="e" lv="2"/>
<menuitem code="f" lv="2"/>
<menuitem code="g" lv="2"/>
</menu>
////////////////////////////
xml4 =
怎么会是这个样子?难道1和3不行,只有2才行?或者说只有一条的数据不能匹配?为啥呢?把 new xml换成<menu/>.appendChild(xxx) 也不行!
加断点调试发现,确实匹配到了,但就是没显示出来!
后来终于明白:
这里用+连接xml就自动调用了
toString()方法。由于单条xml的toString()输出的是空串(就是它的文本子节点),而多条xml也就是xmllist的toString()输出的是所有标签,所以导致了这个结果。
而要让xml输出标签需要用
toXMLString()方法
改成 new XML("<menu>" + xml1.menuitem.(@lv == 1).toXMLString() + "</menu>");
分享到:
相关推荐
数据绑定是Flex 4中的一个关键特性,它允许开发者轻松地将数据源与UI组件连接起来,实现实时更新。书中深入探讨了数据绑定的概念和实现方式,以及如何处理用户事件,如点击、滚动等,以响应用户操作,提供流畅的用户...
本文将针对搭建Flex+Java+Oracle项目的实践过程中所遇到的问题进行深入剖析,并提供相应的解决方案,帮助开发者们规避潜在的技术陷阱。 #### 二、环境配置与搭建 1. **开发环境需求**: - **JDK版本**:1.6(建议...
在IT行业中,Granite是Adobe Flex与Java之间交互的一个关键组件。这个技术允许开发者利用Flex的富客户端界面优势,结合Java后端的强大处理能力,构建高效且用户友好的应用程序。在本篇讨论中,我们将深入探讨如何...
在Flex中,数据绑定表达式通常在MXML中使用大括号({})表示,用于将一个对象的属性值与另一个对象的属性值连接起来。例如,`<s:Label id="label" text="{xml.user.name}" />`将XML对象的"user"子节点的"name"属性绑定...
标题和描述均提到“Flex_RPC错误大全”,这表明文章旨在汇总和解析在使用Flex与.NET进行通信时常见的错误。...通过深入理解每个错误背后的原理,可以避免常见的陷阱,提升项目的开发效率和用户体验。
- **Flex Builder**:一个集成开发环境(IDE),支持MXML和ActionScript的编写与调试。 #### 四、界面定制与优化 - **样式**(Styles):用于改变组件外观的设计元素。 - **皮肤**(Skins):允许更改控件的外观和...
【标题】"SNMP-demo代理端代码"是一个关于如何在Java和Spring框架中集成SNMP(简单网络管理协议)的示例项目,用于构建监控管理平台。SNMP是一种广泛使用的网络管理和故障排查工具,它允许远程监控网络设备的状态和...
1. **快速入门**:引导开发者如何设置环境,创建第一个BlazeDS项目,并实现客户端与服务器的简单通信。 2. **API参考**:详细列出BlazeDS提供的类、接口、方法等,帮助开发者理解和使用各种功能。 3. **配置指南**...
- Flex是一个灵活的词法分析器生成器,用于识别输入文本中的词法单元。 2. **使用Bison和Flex的意义:** - 在处理复杂的语言结构时,Bison和Flex可以帮助生成高效的解析器。 - 对于开发gSOAP这样的工具而言,能够...