• 【设为首页】
  • 【收藏闪客居】
当前位置:主页 > FLASH AS 编程 > AS进阶篇 > 文章内容
  • as2.0里的xml解析类:mx.xpath.XPathAPI

  • 来源:极度鹤小居 作者:极度鹤 2008-11-27 【 】 TAG:

因为工作需要, 花了点时间研究了一下as2.0里的xml解析类XPathAPI. 用起来挺方便

主要是四个方法:
mx.xpath.XPathAPI.selectNodeList(node:XMLNode, path:String):Array
mx.xpath.XPathAPI.selectSingleNode(node:XMLNode, path:String):node:XMLNode
mx.xpath.XPathAPI.setNodeValue(node:XMLNode, path:String, newValue:String):Number
mx.xpath.XPathAPI.getEvalString( node:XMLNode, path:String):String

参数说明:
第一个参数: node为XMLNode类型, 就是将要解析的xml节点啦;
第二个参数: path为字符串路径, 就是相对于node节点开始往下的节点名称;
(第三个函数中的newValue为String就没什么好说的啦);

下面是使用例子, 新建一个fla文件, 在第一帧把代码写上测试看效果吧!;
程序代码 程序代码

fla文件第一帧的代码:

import mx.xpath.XPathAPI;
var arr=new Array()
var my_xml:XML = new XML();
my_xml.ignoreWhite = true;
my_xml.load("xml.xml");
my_xml.onLoad = function(success) {
    //将根节点下的所有节点列表解析到arr数组中;
    arr = mx.xpath.XPathAPI.selectNodeList(this.firstChild, "/lists/list");
    trace("节点数组:\n   " + arr);
    trace("---------------------------\n");
    
    //输出数组列表中第一个节点下的第一个节点的值(即aa的值);
    //与下面的语句等同:trace("节点aa的值为:\n   " + mx.xpath.XPathAPI.selectSingleNode(arr[0], "/list/aa").firstChild.nodeValue);    
    trace("节点aa的值为:\n   " + mx.xpath.XPathAPI.selectSingleNode(arr[0], "/list").childNodes[0].firstChild.nodeValue);
    trace("---------------------------\n");
    
    //输出数组列表中第一个节点的url属性的值;
    trace("第一个list节点的url属性值:\n   " + mx.xpath.XPathAPI.selectSingleNode(arr[0], "/list").attributes.url);
    trace("---------------------------\n");
    
    //输出节点aa处在arr[0]节点的相对位置的字符串值;
    trace("aa在根节点对应下来的位置信息:\n    " + mx.xpath.XPathAPI.getEvalString(arr[0], "/list/aa"));
    trace("---------------------------\n");
    //;
    trace("更新节点aa的值并返回节点更新的数目:  " + mx.xpath.XPathAPI.setNodeValue(arr[0], "/list/aa", "this is new value"));
    trace("节点aa的新值为:\n   " + mx.xpath.XPathAPI.selectSingleNode(arr[0], "/list/aa").firstChild.nodeValue);
    trace("---------------------------");
};



上一篇:FLASH如何动态"修改"注册点   下一篇:没有了
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)