2007/06/14 | AS3操作XML [七]: 按某条件插入节点_发现AS编辑器的bug并解决
类别(Flash) | 评论(0) | 阅读(235) | 发表于 08:43

// 例七: 按某条件插入节点_发现AS编辑器的bug并解决
var userInfo:XML =
<xmlRoot>

<userItem id="1">
<user>userName1</user>
<age>1</age>
</userItem>

<userItem id="2">
<user>userName2</user>
<age>2</age>
</userItem>

<userItem id="3">
<user>userName3</user>
<age>3</age>
</userItem>

</xmlRoot>;

//新建新的userItem节点
var userItem_new1:XML=
<userItem id="1.5">
<user>userName1.5</user>
<age>1.5</age>
</userItem>;
var userItem_new2:XML=
<userItem id="2.5">
<user>userName2.5</user>
<age>2.5</age>
</userItem>;

//在哪个节点 前/后 加,就用哪个节点名;这里为userInfo
//在<userItem id="2"> 前 加userItem_new1节点
userInfo.insertChildBefore(userInfo.userItem.(@id=="2"),userItem_new1);

//在<userItem id="2"> 后 加userItem_new2节点
userInfo.insertChildAfter(userInfo.userItem.(@id=="2"),userItem_new2);
trace(userInfo);

//--------------------------------------------------
/*注意:
<userItem id="2">
<user>userName2</user>
可是如果我想在此处加那个新节点<userItem_new1>
<age>2</age>
</userItem>
就必须这样写:
*/
//注意 xmlNode 的类型是: * , 即任意类型.因为本人试过其它所以类型了, 编译是错误的.只能用这个类型.
var xmlNode:*=userInfo.userItem.(@id=="2");
xmlNode.insertChildBefore(userInfo.userItem.(@id=="2").age,userItem_new1);
//不能简写成: userInfo.userItem.(@id=="2").insertChildBefore(userInfo.userItem.(@id=="2").age,userItem_new);

trace(userInfo);

 压缩包下载


0

评论Comments

日志分类
首页[223]
Flash[50]
Flex和AIR[76]
Ajax和CSS[9]
SilverLight[3]
视觉设计[10]
心情[39]
杂七杂八[36]