1

AS3 | アドベ エア 3.5 | フラッシュ CS6

オンラインのソースから html を引っ張って文字列に入れ、それを少しずつ分解して、引っ張った情報に基づいて XML ファイルを作成しています。「info」から「&」までの文字を削除するには、文字列全体を検索する必要があります。文字列全体にこれの複数のインスタンスがあるため、RegExp を使用するのが最善であると考えました。他の提案を歓迎します。

//code from the website put into a full string
var fullString = new String(urlLoader.data);

//search string to find <info> and remove characters AFTER it up until the character '&'
var stringPlusFive:RegExp = /<info>1A2E589EIM&/g;

//should only remove '1A2E589EIM' leaving '<info>&'
fullString = fullString.replace(stringPlusFive,"");

私が理解するのに苦労している問題は、「1A2E589EIM」が一貫していないことです。それらは乱数と文字、そしておそらく長さであるため、上に書いたものは実際には使用できません. それは常に "&" につながります。

助けてくれてありがとう。

4

1 に答える 1

0

正規表現はもっと似ていると思います

//search string to find <info> and remove characters AFTER it up until the character '&'
var stringPlusFive:RegExp = /<info>\w+&/g;

//should only remove '1A2E589EIM' leaving '<info>&'
fullString = fullString.replace(stringPlusFive,"<info>&");

ここで、文字列を XML に解析する場合は、XML 構造が得られるまで待って、'info' ノードから情報文字列を削除するだけです。

//code from the website put into a full string
var fullString = new String(urlLoader.data);

//parse to XML
var xml:XML = XML(fullString),
    index:int, text:string;

for each(var info:XML in xml.descendants('info')){
  text = info.*[0].text();
  index = text.indexOf('&');
  if(index != -1){
    info.*[0] = text.substr(index);
  }
}

*[0] への影響についてはわかりませんが、そのようなものでなければなりません。お役に立てれば。

于 2013-02-06T10:27:40.713 に答える