快速业务通道

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

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-07

因为工作需要,花了点时间研究了一下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文件第一帧的代码: importmx.xpath.XPathAPI;
vararr=newArray()
varmy_xml:XML=newXML();
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","thisisnewvalue"));
trace("节点aa的新值为:\n"+mx.xpath.XPathAPI.selectSingleNode(arr[0],"/list/aa").firstChild.nodeValue);
trace("---------------------------");
}; xml.xml 的内容: <?xmlversion="1.0"encoding="utf-8"?>
<lists>
<listurl="music/大家笑哈哈-阿桑.mp3"lrc="">
<aa>aaaaaa</aa>
<bb>bbb</bb>
</list>
<listurl="music/呵責.mp3"lrc="">22222</list>
<listurl="music/忙打哟.mp3"lrc="">33333</list>
<listurl="music/小宝贝我要亲晕你.mp3"lrc="">44444</list>
</lists> 关键词:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号