2012-08-29 54 views
0

我有一個字符串:Flex的字符串到HTML的解析與DOM

private str:String = ' 
<!DOCTYPE html> 
<html> 
<body> 
<div>TEST</div> 
<span id="t1">T1 Content</span> 
<span class="t2">T2 Content</span> 
</body> 
</html>'; 

我想分析的字符串。接下來,我通過Object,ID或Class獲取innerHTMl。

例如爲:

Objects: Body, Div, Span 
IDs: t1 
Classes: t2 

在PHP與the class,這很容易。但是我無法用Flex創建這個版本。

感謝您的幫助......

+0

我覺得這個問題太寬泛,無法在本網站上回答。也許你應該嘗試在AS3中編寫你自己的HTML解析器,並且/或者嘗試轉換你找到的PHP類,然後回過頭來看看你遇到的具體錯誤。 – JeffryHouser

+1

如果它是XHTML,則可以將其視爲常規XML對象。但我認爲您示例的第一行已經不符合要求。 – RIAstar

+0

我相信as3會在創建原生XML對象時忽略驚歎號(第),所以第一行應該沒問題,如果不行,你總是可以用正則表達式或string.replace()提取它 – BadFeelingAboutThis

回答

1

將其轉換爲在AS3原生XML,然後使用E4X解析所需的信息:

var xml:XML = XML(str); 

//trace the content of any span with the id of "t1" 
trace(xms..span.(attribute("id") == "t1")); 

//trace the content of any span with the class t2 
trace(xml..span.(attribute("class") == "t2")); 

//trace the contents of the first div 
trace(xml..div[0]); 

更多關於E4X,這是一個很好的入門: http://www.senocular.com/flash/tutorials/as3withflashcs3/?page=4

+0

我有一個錯誤: TypeError:Error #1085:元素類型「鏈接」必須由匹配結束標記「」終止。 https://docs.google.com/document/d/1Qktfpe2HNX3eqkbE8Y3sXodWmVayKfjpxOW98rEUHV8/edit – SamedDeger

+0

我看到你的問題沒有鏈接標籤,在複雜的HTML頁面(如計算器主頁)裝載將始終是棘手,因爲他們並不總是遵守XML標準。這個錯誤是因爲stackoverflow上的鏈接標籤沒有尾部/在他們的標籤上,這使標記變形導致該錯誤。 – BadFeelingAboutThis

+0

如果你不在控制html的控制,那麼你必須創建一些清理功能,以確保標記是有效的。你也可以在字符串中搜索你想要的數據,忘記把它轉換成xml。 – BadFeelingAboutThis