本页面由 Flash 保存计划 从 Internet Archive 存档还原 · 快照 2008-09-04 · 原址 http://www2.flash8.net/teach/7319.htm ← Flash 保存计划

as2.0里的xml解析类:mx.xpath.XPathAPI

作者:极度鹤   类型:原创   来源:极度鹤小居

  因为工作需要,花了点时间研究了一下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("---------------------------");
};
xml.xml 的内容:
<?xml version="1.0" encoding="utf-8"?>
<lists>
    <list url="music/大家笑哈哈-阿桑.mp3" lrc="" >
        <aa>aaaaaa</aa>
        <bb>bbb</bb>
    </list>
    <list url="music/呵責.mp3" lrc="" >22222</list>
    <list url="music/忙打哟.mp3" lrc="" >33333</list>
    <list url="music/小宝贝我要亲晕你.mp3" lrc="" >44444</list>
</lists>
   责任编辑:silvia    时间:2008年12月1日
  • 最近更新