mat*_*amp 3 xml rss parsing actionscript-3 xml-namespaces
想看看有趣的东西吗?
var xml:XML = XML(<feed><entry /><entry /><entry /></feed>);
trace(xml.entry.length()) // returns 3
Run Code Online (Sandbox Code Playgroud)
有道理,对吗?现在让我们添加这个属性......
var xml:XML = XML(<feed xmlns="http://www.w3.org/2005/Atom"><entry /><entry /><entry /></feed>);
trace(xml.entry.length()) // returns 0
Run Code Online (Sandbox Code Playgroud)
那不可能是对的.让我们尝试不同的属性.
var xml:XML = XML(<feed test="okay"><entry /><entry /><entry /></feed>);
trace(xml.entry.length()) // returns 3
Run Code Online (Sandbox Code Playgroud)
谁知道会导致什么?我以atom为例,但根节点上的任何'xmlns'属性似乎都有这种效果.返回的值是直接错误的 - 显然仍有3个"条目"子节点,无论父母拥有什么属性.
St.*_*and 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
Run Code Online (Sandbox Code Playgroud)
更新