想看到有趣的东西吗?
var xml:XML = XML(<feed><entry /><entry /><entry /></feed>);
trace(xml.entry.length()) // returns 3
有道理,对吗?现在让我们添加这个属性......
var xml:XML = XML(<feed xmlns="http://www.w3.org/2005/Atom"><entry /><entry /><entry /></feed>);
trace(xml.entry.length()) // returns 0
那不可能是对的。让我们尝试使用不同的属性。
var xml:XML = XML(<feed test="okay"><entry /><entry /><entry /></feed>);
trace(xml.entry.length()) // returns 3
任何人都知道会导致什么?我以atom为例,但根节点上的任何'xmlns'属性似乎都有这种效果。返回的值是直接错误 - 显然仍有3个“条目”子节点,无论父母拥有什么属性。
答案 0 :(得分:10)
以下是可能的解决方法:
var xml:XML = XML(<feed xmlns="http://www.w3.org/2005/Atom"><entry /><entry /><entry /></feed>) ;
trace(xml.entry.length()) ;
// output: 0
var ATOM:Namespace = new Namespace( "http://www.w3.org/2005/Atom" );
trace(xml.ATOM::entry.length()) ;
// output: 3
default xml namespace = ATOM;
trace(xml.entry.length()) ;
// output: 3
<强>更新强>