AS3 XML读与写

这是我们要读取的xml:

<?xml version="1.0" encoding="utf-8"?>

<map>
  <tips>一切都会消失</tips>
  <background x_offset="-700" y_offset="500" cols="68" rows="68" cellSize="50"/>
  <Tiles>
    <tile col="53" row="43"/>
    <tile col="53" row="44"/>
    <tile col="53" row="45"/>
    <tile col="54" row="41"/>
    <tile col="54" row="42"/>
    <tile col="54" row="43"/>
    <tile col="54" row="44"/>
    <tile col="55" row="42"/>
  </Tiles>
</map>

    加载:
 var loader:URLLoader = new URLLoader();
		loader.load(new URLRequest("../bin/map.xml"));
		loader.addEventListener(Event.COMPLETE, onCompleteHandler);

基本的读取操作,也是我比较喜欢的读取操作~ 
		private function onCompleteHandler(evt:Event):void {
			var xml:XML = new XML((evt.target as URLLoader).data);

			trace(xml.tips); //读取节点内容
			trace(xml.background.@x_offset);  //读取节点某属性
			for each (var node:XML in xml.Tiles.tile)   //遍历某节点
			{
				//trace("col:" + node.@col + "   row:" + node.@row);   //读取元素节点的属性
				for each (var kid:XML in node.attributes()) {
					trace("属性名:" + kid.name() + " ,值" + kid.toString()); //如果节点属性和数量未知 照样可以读取
				}
			}
		}

如何要构造和保存自己的xml呢?
比如我们要创建上面那个xml
其实就是创建String 只需要按照XML的格式就可以了, 最后就转换成XML,然后保存文件。

PS:这里只给了一个节点的创造代码 其他的自己可以根据需要设计~

public static function toXml():XML
{
	var xmlString:String = "";
	xmlString += "<map>\n";
			
	//Background
	xmlString += BackgroundToXml() + "\n";
			
	//Tiles
	//xmlString += TilesToXml();
			
	xmlString += "</map>";
			
	return XML(xmlString);
}
public static function BackgroundToXml():String
{       
 //XML的信息保存在Model里面管理 当要保存文件的时候 可以获取到最新的数据  Model里面的数据通常是由用户操作视图view来更改的 
return "background x_offset='" + Model.Xoffset + "' y_offset='" + Model.Yoffset + "' cols='" + Model.numCols + "' rows='" + Model.numRows + "' cellSize='" + Model.cellSize + "' />";
}

保存XML的时候 调用toXML() 把Model里面的数据写入XML 这样就完成了数据即时保存 

		var file:FileReference = new FileReference();	
		var xmlss:XML = GlobalData.toXml();
		file.save(xmldata, "data.xml");



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值