博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FLEX程序设计--XML(1)
阅读量:5843 次
发布时间:2019-06-18

本文共 4199 字,大约阅读时间需要 13 分钟。

1.XML概述:XML技术是一种基于标签的层次结构技术.

1.1.XML document(XML文件):指的是XML文件,完全不同于XMLDocument类.

1.2.XML node(XML节点) 是XML的基本组成部分,节点可以是元素,文本节点或属性.

1.3.XML element(XML元素):一般被理解为标签,但是XML元素包含的都是成对标签.

1.4.Root  node(根节点):最外层的XML元素

1.5.Attribute(属性):XML元素的一部分,位于标签内.

1.6.XML declaration(XML声明):一个特殊的标签,说明该文件是XML文件.

2XML数据的优点:

2.1.用户可以手工编辑或程序编写XML,可以很容易表示负责的数据类型.

2.2.大部分服务端语言都支持XML的读取操作.

2.3.XML是一种标准,可以很容易的在不同应用程序或者平台上传递和存储.

3.创建XML对象

3.1.使用XML标签创建XML对象

格式:var XML变量:XML=<根元素>

                                 <元素1/>

                                  <元素2/>

                                   .......

                                   <元素n/>

                                   </根元素>;

ContractedBlock.gif
ExpandedBlockStart.gif
Code
                                
//
{}操作符可以用来进行动态数据绑定
                var ss:String
=
"
a
"
;
                var example:XML
=<
abc
>
                                
<
a
>
{ss}
</
a
>
                                
<
b
>
b
</
b
>
                                
<
c
>
c
</
c
>
                                
</
abc
>
;
                Alert.show(example);

3.2使用字符串创建XML对象

格式: var XML变量:XML=new XML(字符串);

                             var ss:String
=
"
a
"
;
                 var str:String
=
"
<abc><a>
"
+
ss
+
"
</a><b>b</b><c>c</c></abc>
"
;
                 var example:XML
=
new
 XML(str);
                Alert.show(example);

4.XML对象添加元素:为XML对象添加新元素有四种方法:1将元素名作为属性添加元素,2使用"[]"操作符添加元素,使用insertChildBefore方法添加元素,使用insertChildArter方法添加元素.

4.1将元素名作为属性添加元素

格式:XML对象名.新元素名=内容;

4.2使用"[]"操作符添加元素

格式:XML对象名[新增元素名]=内容;

4.3.insertChildBefore方法:在某元素前插入新元素.

格式:XML对象名.insertChildBefore(XML元素,新元素);

4.4.insertChildArter方法:在某元素后

插入新元素.

格式:XML对象名.insertChildArter(XML元素,新元素);

ContractedBlock.gif
ExpandedBlockStart.gif
Code
                                var example:XML
=<
example
/>
;
                
//
使用元素名作为属性添加
                example.newElemnet
=<
newElemnet
/>
;
                var id:
int
=
10
;
                
//
使用"[]"操作符
                example[
"
user
"
+
id]
=
""
;
                example.two
=
""
;
                
//
使用XML自带的方法
                example
=
example.insertChildBefore(example.two,
<
one
/>
);
                example
=
example.insertChildAfter(example.two,
<
three
/>
);

5.XML对象中添加元素内容:XML元素内容指两个封闭标签间的内容.

5.1将元素名作为属性添加元素内容

格式:XML对象.元素名=值;

ContractedBlock.gif
ExpandedBlockStart.gif
Code
                          var example:XML
=<
example
/>
                              
//
使用元素名作为属性添加
                example.firstname
=
"
Jason
"
;
                example.age
=
25
;
                example.boolean
=
true
;
                example.abc
=
[
"
a
"
, undefined, 
"
b
"
"
c
"
null
7
false
];
                
/*
显示:
                   <example>
                   <firstname>Jason</firstname>
                   <age>25</age>
                   <boolean>true</boolean>
                   <abc>a,,b,c,,7,false</abc>
                   </example>
                 * 
*/

5.2.使用XML类中的方法添加元素内容

XML对象.appendChild(内容);

XML对象.prependChild(内容);

XML对象名.insertChildBefore(XML元素,新元素);

XML对象名.insertChildArter(XML元素,新元素);

ContractedBlock.gif
ExpandedBlockStart.gif
Code
                            var example:XML
=<
example
/>
;
                
//
使用XML类方法
                example.appendChild(
<
two
>
2
</
two
>
);
//
增加<two>元素值为2
                example.prependChild(
<
one
>
"
number 1
"
</
one
>
);
//
增加<one>元素,值为"number 1".
                example.insertChildAfter(example.one[
0
], 
1.5
);
//
在第一个<one>后添加值为1.5
            example.insertChildBefore(example.two[
0
], 
<
part
>
1.75
</
part
>
);
//
在第一个<two>后添加<part>新元素,值为:1.75
                
/*
显示
                 *<example>
                   <one>"number 1"</one>
                   1.5
                   <part>1.75</part>
                   <two>2</two>
                 </example> 
*/
 

6.XML元素中添加属性:包含在元素内的名称和值.

6.1.使用"@"操作符添加属性

格式:XML对象名.元素名.@属性=值;

6.2.使用"[]"操作符添加属性

格式:XML对象名.元素名.@[属性名]=值;

ContractedBlock.gif
ExpandedBlockStart.gif
Code
                               
//
使用"@"操作符
                var example:XML
=<
example
><
someElement
/></
example
>
;
                example.someElement.@number
=
12.1
;
                example.someElement.@string
=
"
example
"
;
                example.someElement.@boolean
=
true
;
                example.someElement.@array
=
[
"
a
"
null
7
, undefined, 
"
c
"
];
                
//
使用"[]"操作符
                example.someElement.@[
"
color
"
 
+
 
11
]
=
"
red
"
;
                Alert.show(example);
            
/*
显示:
               <example>
               <someElement number="12.1" string="example" boolean="true" array="a,,7,,c" color11="red"/>
               </example>
             * 
*/

7.从XML中读取元素

从XML中读取元素可以使用elements方法,elements方法返回该XML根节点下全部直接子节点元素.

格式:XML对象.elements();

ContractedBlock.gif
ExpandedBlockStart.gif
Code
                       
public
 function ReadXml()
            {
                var menu:XML
=<
menu
>
                        
<
menuitem label
=
"
File
"
>
                            
<
menuitem label
=
"
New
"
/>
                        
</
menuitem
>
                        
<
menuitem label
=
"
Help
"
>
                            
<
menuitem label
=
"
About
"
/>
                        
</
menuitem
>
                        This 
is
 a text node
                    
</
menu
>
;
                var result:String
=
""
;
                
for
 each (var element:XML 
in
 menu.elements())
                {
                    result
=
result 
+
 element.@label 
+
 
"
\n
"
;
                }
                Alert.show(result);
                
/*
返回结果
                   File
                   Help
                 
*/
 
                
//
在这边因为File和Help是根节点的直接子节点,所以只返回这两个节点,
                
//
而New和About则是这两个节点的子节点,所以不返回
                
//
如果要返回所有节点需要向下递归
                walk(menu);
                
/*
返回结果
                 *
                 File
                 New
                 Help
                 About 
                 
*/
            }
            
public
 function walk(node:XML):
void
            {
                var result:String
=
""
;
                
for
 each (var element:XML 
in
 node.elements())
                {
                    Alert.show(element.@label);
                    walk(element);
                }
            }

 

版权说明

  如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。

  作      者:温景良
  文章出处:  或 

分类:
+加关注
0
0
上一篇:
下一篇:
posted @ 2009-04-26 01:59 Views( 663) Comments( 1)
  
2756480 2013/8/21 8:51:58
2013-08-21 08:51 |
看到之后受益不少,谢谢你
http://pic.cnblogs.com/face/531770/20130613151724.png
最新IT新闻:
·
·
·
·
·
»
最新知识库文章:
·
·
·
·
·
»

公告

 
本文转自 博客园博客,原文链接: ,如需转载请自行联系原作者
 
 
你可能感兴趣的文章
转载 《Python爬虫学习系列教程》学习笔记
查看>>
Flex组件的项目渲染器(ItemRenderer)使用总结
查看>>
python - 列表
查看>>
NGUI的输入框制作(attach- input filed script的使用)
查看>>
[异常笔记] zookeeper集群启动异常: Cannot open channel to 2 at election address ……
查看>>
mysql 03
查看>>
windows系统下搭建私有nuget仓储服务器, 打包程序集并推送到私有nuget仓储服务器...
查看>>
NgDL:第三周:浅层NN
查看>>
OpenCV基于傅里叶变换进行文本的旋转校正
查看>>
谁分配、谁释放的原则需要goto
查看>>
C#中字符串的内存分配与驻留池
查看>>
PIX防火墙配置DHCP
查看>>
Centreon 安装部署指南
查看>>
利用ADMT进行Exchange跨域迁移之三:迁移Exchange用户邮箱
查看>>
linux中生成考核用的NTFS文件系统(历史版本)
查看>>
项目管理修炼之道之规划项目
查看>>
【翻译】在Ext JS应用程序中使用自定义图标
查看>>
Lync Server 2013企业版部署系列之九:前端部署后续工作
查看>>
【虚拟化实战】容灾设计之四VPLEX
查看>>
Forbes:大数据处理需要需要一个全新的大架构
查看>>