重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
as3遍历对象所有属性的方法(包含Flex)
创新互联建站专业提供成都主机托管四川主机托管成都服务器托管四川服务器托管,支持按月付款!我们的承诺:贵族品质、平民价格,机房位于中国电信/网通/移动机房,光华机房服务器托管服务有保障!
1、所有对象,包括静态属性和动态属性
ObjectUtil.getClassInfo(this._arr[0]).properties as Array
2、仅能遍历静态属性
var o:Object=new Object();
o.name='mm';
o.type='size';
o.size='32D';
for (var i:String in o)
{
trace(i);
trace(o[i]);
}
3、可以遍历所有属性,需要解析XML,比较麻烦
flash.utils.describeType
var oXml:XML=describeType(o);
这个应该没有问题的。看起来比较轻松的。。
代码调试正确
using
System;
using
System.Collections;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Web;
using
System.Web.SessionState;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.HTMLControls;
using
System.XML;
private
XMLDocument
XMLDoc;
//load
XML
file
private
void
LoadXML()
{
XMLDoc=new
XMLDocument();
XMLDoc.Load(Server.MapPath("User.XML"));
}
//添加节点
private
void
AddElement()
{
LoadXML();
XMLNode
XMLdocSelect=XMLDoc.SelectSingleNode("user");
XMLElement
el=XMLDoc.CreateElement("person");
//添加person节点
el.SetAttribute("name","风云");
//添加person节点的属性"name"
el.SetAttribute("sex","女");
//添加person节点的属性
"sex"
el.SetAttribute("age","25");
//添加person节点的属性
"age"
XMLElement
xesub1=XMLDoc.CreateElement("pass");
//添加person节点的里的节点
xesub1.InnerText="123";//设置文本节点
el.AppendChild(xesub1);
XMLElement
xesub2=XMLDoc.CreateElement("Address");
xesub2.InnerText="昆明";//设置文本节点
el.AppendChild(xesub2);
XMLdocSelect.AppendChild(el);
XMLDoc.Save(Server.MapPath("user.XML"));
}
//修改节点
private
void
UpdateElement()
{
LoadXML();
XMLNodeList
nodeList=XMLDoc.SelectSingleNode("user").ChildNodes;//获取bookstore节点的所有子节点
foreach(XMLNode
xn
in
nodeList)//遍历所有子节点
{
XMLElement
xe=(XMLElement)xn;//将子节点类型转换为XMLElement类型
if(xe.GetAttribute("name")=="风云")//如果name属性值为“风云”
{
xe.SetAttribute("name","发明");
//如果下面有子节点在下走
XMLNodeList
nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach(XMLNode
xn1
in
nls)//遍历
{
XMLElement
xe2=(XMLElement)xn1;//转换类型
if(xe2.Name=="pass")//如果找到
{
xe2.InnerText="66666";//则修改
break;
}
}
break;
}
}
XMLDoc.Save(Server.MapPath("user.XML"));//保存
}
//删出节点
private
void
deleteNode()
{
LoadXML();
XMLNodeList
xnl=XMLDoc.SelectSingleNode("user").ChildNodes;
foreach(XMLNode
xn
in
xnl)
{
XMLElement
xe=(XMLElement)xn;
if(xe.GetAttribute("name")=="发明")
{
//xe.RemoveAttribute("name");//删除name属性
xe.RemoveAll();//删除该节点的全部内容
break;
}
}
XMLDoc.Save(Server.MapPath("user.XML"));//保存
}
private
void
showIt()
{
LoadXML();
XMLNode
xn=XMLDoc.SelectSingleNode("user");
XMLNodeList
xnl=xn.ChildNodes;
foreach(XMLNode
xnf
in
xnl)
{
XMLElement
xe=(XMLElement)xnf;
//
Console.WriteLine(xe.GetAttribute("name"));//显示属性值
//
Console.WriteLine(xe.GetAttribute("sex"));
//
//
XMLNodeList
xnf1=xe.ChildNodes;
//
foreach(XMLNode
xn2
in
xnf1)
//
{
//
Console.WriteLine(xn2.InnerText);//显示子节点点文本
//
}
}
}
XML的样式:
?xml
version="1.0"
encoding="gb2312"?
user
person
/person
person
name="风拉"
sex="男"
age="25"
pass123/pass
Address大明/Address
/person
person
name="风云"
sex="女"
age="25"
pass123/pass
Address昆明/Address
/person
/user
先读取节点Match,然后读取节点内的各个属性值。 再进行节点中的子节点SetSetName的读取,读取方式也是直接读取各个属性值。