2010-05-16 64 views
0

(我這樣做在AS3,但我敢肯定的答案可以在僞代碼給出)加載XML有可能無限標籤

基本上,我有類似的XML文件:

<Main> 
<Event> 
    <Name>Blah</Name> 
    <Event> 
    <Name>Blah2</Name> 
    <Event> 
    <Name>Blah3</Name> 
    ... 
    </Event> 
    </Event> 
</Event> 
</Main> 

是的,在某種程度上它是糟糕的設計。但我想要的是,任何事件都有可能危及其他事件,並且這個想法有點循環。

有關如何做到這一點的任何想法?

+0

能否請您解釋得更清楚一點? – 2010-05-16 22:24:14

+0

它是如何無限的?根據定義,xml是有限的。它是磁盤上的一個文件。 – 2010-05-16 22:25:11

+0

從某種意義上說,沒有設置嵌套標籤的數量。 這就是我的意思是'無限' – Firstmate 2010-05-16 22:31:41

回答

2

使用遞歸?

+0

這樣的東西,我可以得到那部分,但怎麼...?像遞歸函數一樣? – Firstmate 2010-05-16 22:38:00

0
var xml:XML = <Main> 
       <Event> 
        <Name>Name1<Name> 
        <Event> 
        <Name>Name2</Name> 
        ........... 
        </Event> 
       </Event> 

       </Main> 
var event:MyEvent = getEvent(xml); 

function getEvent(xml:XML):MyEvent 
{ 

    var event:MyEvent = new MyEvent(); 
    var xmlList:XMLList = xml.children(); 
    for(i = 0; i < xmlList.length(); i++){ 
    if(xml[i].hasOwnProperty("Name")){ 
     event.name = xml[i]["Name"]; 
     } 
    if(xml[i].hasOwnProperty("Event")){ 
     event.event = getEventVO(xml[i]["Event"]); 
     } 

    } 
    return event; 

} 

MyEvent.as

package 
{ 

    public class MyEvent 
    { 

    public var name:String; 
    public var event:Event; 

    public function MyEvent():void 
    { 
    } 
    } 

}