Can';使用elements操作符时,是否无法从XML对象获取元素列表?

Can';使用elements操作符时,是否无法从XML对象获取元素列表?,xml,actionscript-3,flash,e4x,Xml,Actionscript 3,Flash,E4x,我一直在使用此XML,但无法使用elements操作符获取节点列表: <s:LinearGradient rotation="90" xmlns:s="library://ns.adobe.com/flex/spark"> <s:GradientEntry color="0x000000" alpha="0.8"/> <s:GradientEntry color="0xFFFFFF" alpha="0.8"/> </s:LinearGradien

我一直在使用此XML,但无法使用elements操作符获取节点列表:

<s:LinearGradient rotation="90" xmlns:s="library://ns.adobe.com/flex/spark">
  <s:GradientEntry color="0x000000" alpha="0.8"/>
  <s:GradientEntry color="0xFFFFFF" alpha="0.8"/>
</s:LinearGradient>

以下是我的AS3:

var fillXML:XML = <s:LinearGradient rotation="90" xmlns:s="library://ns.adobe.com/flex/spark">
      <s:GradientEntry color="0x000000" alpha="0.8"/>
      <s:GradientEntry color="0xFFFFFF" alpha="0.8"/>
    </s:LinearGradient>;

var entriesXML:XMLList;
var GRADIENT_ENTRY:String = "GradientEntry";
entriesXML = fillXML..entries;

if (entriesXML.length()==0) {
    entriesXML = fillXML.descendants(GRADIENT_ENTRY);

    if (entriesXML.length()==0) {
        entriesXML = fillXML.elements(GRADIENT_ENTRY);
    }
}
var-fillXML:XML=
;
var entriesXML:xmlslist;
var GRADIENT_条目:String=“GradientEntry”;
entriesXML=fillXML..entries;
if(entriesXML.length()==0){
entriesXML=fillXML.substands(梯度项);
if(entriesXML.length()==0){
entriesXML=fillXML.elements(梯度项);
}
}

看起来您必须使用QName对象进行搜索:

var fillXML:XML = <s:LinearGradient rotation="90" xmlns:s="library://ns.adobe.com/flex/spark">
      <s:GradientEntry color="0x000000" alpha="0.8"/>
      <s:GradientEntry color="0xFFFFFF" alpha="0.8"/>
    </s:LinearGradient>;

var entriesXML:XMLList;
var GRADIENT_ENTRY:String = "GradientEntry";
var qname:QName = new QName("library://ns.adobe.com/flex/spark", GRADIENT_ENTRY);

entriesXML = fillXML.elements(GRADIENT_ENTRY);;

if (entriesXML.length()==0) {
    entriesXML = fillXML.elements(qname);
}
var-fillXML:XML=
;
var entriesXML:xmlslist;
var GRADIENT_条目:String=“GradientEntry”;
变量qname:qname=新的qname(“library://ns.adobe.com/flex/spark“,梯度(U输入);
entriesXML=fillXML.elements(梯度项);;
if(entriesXML.length()==0){
entriesXML=fillXML.elements(qname);
}

不要,然后将其作为新问题重新发布。这就是为什么存在这个问题。不要试图通过删除和重新发布绕过重新打开过程。作为副本链接到的答案不同。然后你在我写答案的时候结束了我的问题。另一个问题没有相同的答案或相同的细节。我已经在这个网站上呆了四年了,我的问题有一半被标记为重复的,直到经过几个小时的争论,我证明它们实际上不是重复的。如果它们是重复的,那么我很高兴自己关闭它们。这是重复的,因为您的问题是无法解释名称空间,链接的问题向您展示了如何进行。(过去还有很多问题涉及到这一常见错误。你的问题绝非独一无二。)不管怎样,你应该为自己的案件进行辩论,并请求重新打开你的问题,而不是将其删除并重新发布。另一个问题是一般性的、低质量的问题。答案是模糊的,因为它谈到了创建一个名称空间和一般使用e4x表示法。它没有回答具体的细节。我的问题是明确的,我的回答是明确的。它还提供了示例代码和工作解决方案代码。@kjhughes令人困惑的是,“标记为重复”的导语鼓励人们在链接的答案没有完全帮助的情况下发布新问题。你是说应该编辑现有的问题,希望重新打开它,对吗?在这里,我不确定正确的道路是什么。