📄 basicxmloperation.as
字号:
package org.kingda.book.xml
{
import flash.display.Sprite;
public class BasicXMLOperation extends Sprite
{
private var kingdaXML:XML
function BasicXMLOperation() {
kingdaXML=
<websites>
<site name="Kingda’s blog" url="http://www.kingda.org/">
<pageview>100000</pageview>
</site>
<site name="ActionScript 3" url="http://www.actionscript3.cn/"/>
</websites>
//访问示例
//accessSample();
//修改示例
//modifySample();
//添加和删除示例
//addAndRemoveSample();
searchSample();
}
private function searchSample():void {
kingdaXML =
<websites>
<site name="Kingda’s blog" url="http://www.kingda.org/">
<pageview>150000</pageview>
<child name="Kingda’s flash blog" url="http://www.kingda.org/blog/">
<pageview>100000</pageview>
</child>
</site>
<site name="ActionScript 3" url="http://www.actionscript3.cn/">
<pageview>50000</pageview>
</site>
</websites>
// trace (kingdaXML..pageview);
/*
输出:
<pageview>150000</pageview>
<pageview>100000</pageview>
<pageview>50000</pageview>
*/
// trace (kingdaXML.site.@*.toXMLString());
/*
输出:
Kingda’s blog
http://www.kingda.org/
ActionScript 3
http://www.actionscript3.cn/
*/
// trace (kingdaXML.site.(pageview <100000));
/*
输出:
<site name="ActionScript 3" url="http://www.actionscript3.cn/">
<pageview>50000</pageview>
</site>
*/
// trace (kingdaXML.site.(@name == "ActionScript 3"));
/*
输出:
<site name="ActionScript 3" url="http://www.actionscript3.cn/">
<pageview>50000</pageview>
</site>
*/
trace (kingdaXML.site.(check(pageview)));
/*
输出:
<site name="ActionScript 3" url="http://www.actionscript3.cn/">
<pageview>50000</pageview>
</site>
*/
trace (kingdaXML.site.(pageview.match(/^5\d+/)));
/*
输出:
<site name="ActionScript 3" url="http://www.actionscript3.cn/">
<pageview>50000</pageview>
</site>
*/
}
private function check(t:*):Boolean {
trace (t is XMLList);
trace (t.length());
if (t <100000) return true;
return false;
}
private function modifySample():void {
//kingdaXML.site.pageview = 324;
/*
运行时错误: TypeError: Error #1089: 不支持对包含多个项目的列表进行赋值。
*/
trace (kingdaXML.site.pageview is XMLList);
kingdaXML.site[0].pageview = 200000;
trace (kingdaXML.site[0]);
/*
输出:
<site name="Kingda’s blog" url="http://www.kingda.org/">
<pageview>200000</pageview>
</site>
*/
kingdaXML.site[0].@name = "Kingda's first blog";
trace (kingdaXML.site[0]);
/*
输出:
<site name="Kingda's first blog" url="http://www.kingda.org/">
<pageview>200000</pageview>
</site>
*/
}
private function addAndRemoveSample():void {
//添加一个空白节点
kingdaXML.site[0].author = new XML();
//以字符串添加一个子节点
kingdaXML.site[0].location = "Hangzhou, China";
//用数组添加一个子节点
kingdaXML.site[0].weekvisit = [1000,2000,3000, 4000];
//添加一个属性
kingdaXML.site[0].@language = "Chinese";
trace (kingdaXML.site[0]);
/*
输出:
<site name="Kingda’s blog" url="http://www.kingda.org/" language="Chinese">
<pageview>100000</pageview>
<author/>
<location>Hangzhou, China</location>
<weekvisit>1000,2000,3000,4000</weekvisit>
</site>
*/
delete kingdaXML.site[0].author;
delete kingdaXML.site[0].location;
delete kingdaXML.site[0].weekvisit;
delete kingdaXML.site[0].@language;
trace (kingdaXML.site[0]);
/*
输出:
<site name="Kingda’s blog" url="http://www.kingda.org/">
<pageview>100000</pageview>
</site>
*/
}
private function accessSample():void {
//访问site下面的pageview
trace (kingdaXML.site.pageview);
/*
输出:100000
*/
trace (kingdaXML.site);
/*
输出:
<site name="Kingda’s blog" url="http://www.kingda.org/">
<pageview>100000</pageview>
</site>
<site name="ActionScript 3" url="http://www.actionscript3.cn/"/>
*/
trace (kingdaXML.site[0]);
/*
输出:
<site name="Kingda’s blog" url="http://www.kingda.org/">
<pageview>100000</pageview>
</site>
*/
trace (kingdaXML.site[1]);
/*
输出为空,因为第二个site子元素没有子元素,是一个空节点,所以为空
*/
trace (kingdaXML.site.@name);
/*
由于两个子元素都有name属性值,所以两个都输出:
Kingda’s blogActionScript 3
*/
trace (kingdaXML.site.@name[0]);
/*
输出第一个子元素的name属性值:
Kingda’s blog
*/
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -