使用XML、Array、Object对象处理xml杂谈——实例讨论

something.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<questions>
  <question sth="The People's Republic of China..."/>
  <question sth="I need one more stamp..."/>
  <question sth="All the new computers..."/>
</questions>

在Flash中使用XML对象:
var my_xml = new XML();
var idx = 0;
my_xml.ignoreWhite = true;
my_xml.onLoad = function(success) {
  if (success) {
    trace(this.firstChild.childNodes[idx].attributes.sth);
    //访问question节点的sth属性。
  }
};
my_xml.load("something.xml");
当需要遍历访问xml时,比较遗憾!它没有length属性,而Array对象有。我们把它转成Array:
var my_xml = new XML();
var my_array = new Array();
var xmlLength = 0;
var idx = 0;
my_xml.ignoreWhite = true;
my_xml.onLoad = function(success) {
  if (success) {
    while (this.firstChild.childNodes[xmlLength]) {
      my_array.push(this.firstChild.childNodes[xmlLength]);
      xmlLength++;
    }
    trace(my_array[idx].attributes.sth);
    //此时访问question节点的sth属性的方法有所改变。
  }
};
my_xml.load("question.xml");
再看看Object:
var my_xml = new XML();
var my_obj = new Object();
var idx = 0;
my_xml.ignoreWhite = true;
my_xml.onLoad = function(success) {
  if (success) {
    my_obj = this;
    trace(my_obj.firstChild.childNodes[idx].attributes.sth);
    //这里访问question节点的sth属性的方法与使用XML对象完全一致。但这里的my_obj一旦改变,my_xml也随之改变,反之亦然。
  }
};
my_xml.load("question.xml");
比较三者,本人推荐使用Array。

ps: 发布设置为Flash Player 6时不支持“
”软回车符(即某些文本编辑器如sepy的换行符,在记事本中是一个小黑疙瘩),Flash Player 7及以上版本支持。



当需要遍历访问xml时,比较遗憾!它没有length属性,而Array对象有

错了 XML有一个length 属性

可以通过
Myxml = new XML();
Myxml.onLoad = function(success) {
if (success) {
secxml = myxml.firstChild.childNodes;
l = secxml.length;
trace(........)
.......

}
};


还可以直接输出它的长度:
trace(this.firstChild.childNodes.length);

转载于:https://www.cnblogs.com/savageworld/archive/2006/07/31/464199.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值