2009-06-18 7 views
0

ActionScript 3では、HTML形式のコンテンツ文字列のフォント属性を解析する方法が不思議です。ActionScript 3を使用して<font>タグ属性を効率的に解析する

var content:String = '<font face="Archer-Bold" size="12" color="#000000">My Content</font>'; 

私はその文字列を解析し、その中にフォント属性を持つオブジェクトを作成したいと思います。だから、結果のオブジェクトは、次のことをトレースします:

trace(fontInfo.name); // output: "Archer-Bold" 
trace(fontInfo.size); // output: "12" 
trace(fontInfo.color); // output: "#000000" 

私は正規表現を推測しているが移動するための方法ですが、私はそれについて何も知りません。思考?

答えて

0

これは私が思いついたものです。正規表現のための理想的な仕事です:

<?xml version="1.0" encoding="utf-8"?> 
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" 
    creationComplete="onComplete();"> 

    <mx:Script> 
     <![CDATA[ 
      import mx.controls.Alert; 
      import mx.utils.ObjectUtil; 
      private var targets:Array = new Array(); 
      private function onComplete():void { 

       var face:String = null; 
       var size:String = null; 
       var color:String = null; 

       var content:String = '<font face="Archer-Bold" size="12" color="#000000">My <br> Content</font>'; 

       // since the content has invalid XML <br> tag XML construction will fail: 
       //var x:XML = new XML(content); 

       var faces:Array = content.match(/face\s*=\s*["'](.[^"']*)["']/); 
       // array is null if no matches found: 
       if (faces != null) { 
        face = faces[1]; 
       } 

       var sizes:Array = content.match(/size\s*=\s*["'](\d{1,})["']/); 
       // array is null if no matches found: 
       if (sizes != null) { 
        size = sizes[1]; 
       } 

       var colors:Array = content.match(/color\s*=\s*["'](.[^"']*)["']/); 
       // array is null if no matches found: 
       if (colors != null) { 
        color = colors[1]; 
       } 

       Alert.show("Font : " + face + ", " + size + ", " + color + "."); 
      } 
     ]]> 
    </mx:Script> 

</mx:WindowedApplication> 

希望に役立ちます。

0

xmlオブジェクトの使用はいかがですか?例:

var fontnode:XML = new XML(content); 
trace([email protected]); 
trace([email protected]); 
trace([email protected]); 
+1

コンテンツに無効なマークアップが含まれている場合、このメソッドは失敗します。「My
content」 – radekg

関連する問題