2016-11-27 27 views
-1

我一直在與該XML的工作,我不能夠獲得與元素運營商的節點列表:使用元素運算符時無法獲取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> 

這裏是我的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); 
    } 
} 
+1

不要[**刪除標記爲重複你的問題**](http://stackoverflow.com/questions/40832158/cant-get-list-of- descender-in-xml-node),然後重新發布i這是一個新問題。這就是爲什麼[**重新打開過程**](http://meta.stackexchange.com/questions/36415/how-do-you-reopen-a-closed-question)存在。 **不要嘗試通過刪除和重新發布來避開重新打開的流程**。 – kjhughes

+0

您作爲重複鏈接的答案不一樣。然後,在我寫解決方案時,你關閉了我的問題。另一個問題沒有相同的答案或相同的細節。我已經在這個網站上四年了,我的一半問題被標記爲重複,直到幾個小時的爭論之後,我證明它們實際上並不重複。如果它們重複,那麼我很樂意自己關閉它們。 –

+0

它是重複的,因爲你的問題是未能解釋命名空間,並且鏈接的問題告訴你如何。 (**還有很多其他的過去的問題都包含了這個常見的錯誤,你的問題遠非唯一的**)無論如何,你應該爭辯你的案子,並且請求你的問題被重新開放,而不是被刪除並重新發布。 – kjhughes

回答

1

它看起來像你有使用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); 
}