2013-07-17 71 views
1

我從一個大的xml文件中獲得以下xml。在AS3中讀取XML

<Text> 
    <cp IX='0'/> 
    <pp IX='0'/> 
    <tp IX='0'/>Wo<cp IX='1'/>rl<cp IX='2'/>d<cp IX='3'/> 
    <cp IX='4'/>!!<cp IX='5'/> 
</Text> 

有沒有什麼辦法來訪問 「CP」 和 「TP」 節點分開之間的文本(例如:禾,RL,d,!!)? 我可以將它們作爲一個單獨的字符串,但是,我需要它們分開,就像在一個數組中。謝謝..

+1

你解決問題了嗎? – ZuzEL

回答

0

基本上Wo,rl,d!!Text節點的子節點。他們的類型是TEXT_NODE

所以我建議遍歷所有Text孩子,並將那些類型爲TEXT_NODE的元素存儲爲數組的元素。

1

可以使用text()方法在你的XML屬性:

var myXML : XML = <Text> 
     <cp IX='0'/> 
     <pp IX='0'/> 
     <tp IX='0'/>Wo<cp IX='1'/>rl<cp IX='2'/>d<cp IX='3'/> 
     <cp IX='4'/>!!<cp IX='5'/> 
    </Text> 

var text : String = myXML.text().toString(); 
trace (text); // output World!! 
+0

他想單獨訪問文本。 – ZuzEL

0

你應該讓你的<Text>標籤內容爲字符串,並使用與分裂正則表達式:

var array:Array = textTagContent.split(/<\S*[^>]*>/); 
trace(array) // ,,,Wo,rl,d,,!!, 

修一修!

a = trimArray(a); 

使用它!

trace(a) // Wo,rl,d,!! 

裁剪功能:

function trimArray(array:Array):Array { 
    var a:Array = []; 
    for each (var item in array) 
    { 
     if (item) { 
      a.push(item); 
     } 
    } 
    return a; 
}