这里呈现出源码,查看一下结果。看一下json格式数据和xml格式数据的使用,还有就是更换数据后树的数据显示正常。
引用
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
initialize="initTree()"
>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
[Bindable]
public var open:Object = new Object();
[Bindable]
public var refreshData:Boolean = false;
[Bindable]
public var switchObj:Object = new Object();
[Bindable]
public var firstObj:Object = new Object();
[Bindable]
public var firstObj1:Object = new Object();
[Bindable]
public var firstObj2:Object = new Object();
[Bindable]
public var provider:String = "firstObj";
private function initTree():void
{
firstObj = new Object();
firstObj.label = "Foods";
firstObj.children = new Array();
firstObj1.label = "Fruits";
firstObj1.children = new Array();
firstObj2.label = "Oranges";
firstObj1.children[0] = firstObj2;
firstObj.children[0] = firstObj1;
switchObj = [
{label:'root1',children:[{label:"firstChilden"},{label:"secondChild"}]}
,
{label:'root2',children:[{label:"firstChilden"},{label:"secondChild"}]}
];
}
public function changeProvider():void
{
open = SampleTree.openItems;
refreshData = true;
if (provider == "firstObj")
{
SampleTree.labelField="label";
provider = "switchObj";
SampleTree.dataProvider = switchObj;
}
else if (provider == "switchObj")
{
provider = "xmlObj";
SampleTree.labelField="@label";
SampleTree.dataProvider = treeData;
}
else if (provider == "xmlObj")
{
provider = "firstObj";
SampleTree.labelField="label";
SampleTree.dataProvider = firstObj;
}
}
public function renderTree():void{
if(refreshData){
// Refresh all rows on next update.
SampleTree.invalidateList();
refreshData = false;
SampleTree.openItems = open;
// Validate and update the properties and layout
// of this object and redraw it, if necessary.
SampleTree.validateNow();
}
}
]]>
</mx:Script>
<mx:XMLList id="treeData">
<node label="Mail Box">
<node label="Inbox">
<node label="Marketing"/>
<node label="Product Management"/>
<node label="Personal"/>
</node>
<node label="Outbox">
<node label="Professional"/>
<node label="Personal"/>
</node>
<node label="Spam"/>
<node label="Sent"/>
</node>
</mx:XMLList>
<mx:Tree id="SampleTree" render="renderTree()" showRoot="true" width="250" dataProvider="{firstObj}" labelField="label" />
<mx:Button label="Change Data Provider" click="changeProvider()"/>
</mx:Application>
分享到:
相关推荐
在Flex中,可以通过Tree的dataProvider属性来设置数据源。为了实现递归绑定,可以自定义一个TreeItemRenderer,该渲染器知道如何根据XML节点的子节点创建新的TreeItems。 ```actionscript var tree:Tree = new Tree...
string jsonData = JsonUtility.ToJson(newData); File.WriteAllText("path_to_output_file.json", jsonData); ``` 需要注意的是,Unity的JsonUtility仅支持基本类型和Unity的序列化支持的类,对于更复杂的数据结构...
XmlNode xmlnode = new XmlParsar().parseString(reponse); import java.io.*; import java.util.Vector; /** * <p>Title: Xml树 * * <p>Description: * * <p>Copyright: Copyright (c) 2004 * * <p>...
与XMLLoader不同,XMLDocument可以直接加载XML字符串,或者从已存在的XMLNode实例中创建。以下是如何使用XMLDocument加载XML文件: ```actionscript var xmlRequest:URLRequest = new URLRequest("path_to_your_xml...
String jsonString2 = jsonMapper.writeValueAsString(xmlNode); ``` - JAXB和Gson示例: ```java import javax.xml.bind.JAXBContext; import com.google.gson.Gson; // 假设有一个Person类 Person ...
C#操作XML时,对xmlNode增、删、改操作 C#操作XML时,对xmlNode增、删、改操作是指在C#程序中对XML文档中的xmlNode进行增删改操作,包括创建节点、删除节点、修改节点属性和值等操作。 创建节点 在C#中,创建节点...
### Flex与XML操作详解 #### 一、E4X与ActionScript 3.0的集成 E4X(ECMAScript for XML)是ECMAScript标准的一个扩展,它被引入到ActionScript 3.0中,极大地简化了XML数据处理的过程。在Flash 5时,ActionScript...
return jsonMapper.writeValueAsString(xmlNode); } } ``` 这个方法中,`XmlMapper`用于解析XML,`ObjectNode`是Jackson中的一个抽象节点,用于表示JSON对象。然后,我们使用`jsonMapper.writeValueAsString()`...
首先,我们需要创建一个XML文件,例如`data.xml`,包含层次化的数据。以下是一个简单的XML示例: ```xml <item id="1">Item1 <item id="2">Item2 <item id="3">Item3 ``` 接下来,我们需要在C#代码中...
### Flex 3速记表AS3.Flex.AIR最新版知识点总结 #### 一、Flex 3速记表概述 Flex 3是一款基于Adobe AIR框架的开源开发工具,主要用于构建高性能且具有高度交互性的Web应用程序。它利用了ActionScript 3(AS3)语言...
这里,`JObject.Parse()`用于将JSON字符串解析成一个`JObject`,然后`SerializeXmlNode()`方法将其转换为`XmlNode`,进一步转换为XML字符串。 2. **反序列化XML到JSON** 反之,可以使用`JsonConvert`的`...
文本保存形式分为五个类XmlNode,XmlElement,XmlAttribute,XmlText,XmlDocument 其中XmlNode为基类其他四个类是由这个类派生出来的,其各功能分别有选择性的保存xml文件中不同的部分和处理函数。
JSON json = XMLNode.parseXML(document.getDocumentElement(), config); System.out.println(json.toString()); } } ``` 在上述示例中,我们使用了如commons-lang、commons-collections、commons-httpclient和...
String jsonString = jsonMapper.writeValueAsString(xmlNode); System.out.println(jsonString); } } ``` 在这个例子中,我们首先使用`XmlMapper`读取XML字符串并将其转换为`ObjectNode`,这是Jackson中的一...
本篇文章将详细讲解基于标题和描述所提及的自定义XML类,包括XMLDocument、XmlNode和XmlAttribute,以及如何利用这些类进行XML的操作。 首先,XMLDocument是XML处理的核心类,它代表一个完整的XML文档。在自封装的...
//XmlNode.h //版本:V1.01测试版 //为帮助作者完善XmlNode,希望大家讲错误发送给作者,以完善其功能 #ifndef XML_NODE_H #define XML_NODE_H #define XML_OBJECT_TYPE_ERROR 0x00 //节点类型错误 #define XML...
此外,它还提供了转换功能,可以将XML数据转换为其他格式,如JSON或自定义的数据结构。 在实际应用中,XMLNode可能被用于各种场景,如配置文件管理、数据交换、网络通信等。由于它是开源的,因此开发者可以自由地...
- 插入和删除节点:`XmlNode.AppendChild()`、`XmlNode.InsertBefore()`、`XmlNode.RemoveChild()`分别用于添加、插入和移除子节点。 - 修改节点:`XmlNode.InnerText`属性可修改文本内容,`XmlAttribute.Value`...
从XML创建普通PHP关联数组用法示例: $ xmlNode = simplexml_load_file ( 'example.xml' ); $ arrayData = xmlToArray ( $ xmlNode ); echo json_encode ( $ arrayData ); 阅读博客文章以获取。 许可证:
// Now person object has the JSON data ``` 2. 序列化对象到JSON:反之,也可以将对象转换为JSON字符串: ```csharp Person person = new Person { Name = "John", Age = 30, City = "New York" }; string json...