高速で効率的にXMLデータを検索します。
http://bbs.9ria.com/viewthread.php?tid=75361&extra=page%3D1%26amp;ordeby%3 D dateline%26 amp;filter%3 D 2592000
プロジェクトグループの中で、多くの人はXMLをデータの引継ぎ橋として使用しています。XMLに対して大量の検索と抽出が行われています。例えば、下記のXMLファイル:
XML/HTMLコード
forとifサイクルでid>20を判断して、もしあなたが本当にこのようにするならば、このblogを見て、このため幸運と感じるべきです!
私は3000個のデータを持っていますが、まだforを使うと、大変な過程です。
1.AS 3のXMLはE 4 Xの処理標準を実現しました。XMLとXMLListの値取り方法に協力して、XMLデータを柔軟に操作することができます。正しいやり方はこれです。
AS 3コード
AS 3コード
2.続いて、私達はtitleに対して検索もできます。コード:
AS 3コード
AS 3コード
AS 3コード
4.最後に私達が取ったデータは全部xmlListタイプです。もしXMLで操作するのが好きなら、もう一つXMLオブジェクトを作成できます。
AS 3コード
プロジェクトグループの中で、多くの人はXMLをデータの引継ぎ橋として使用しています。XMLに対して大量の検索と抽出が行われています。例えば、下記のXMLファイル:
XML/HTMLコード
var xml:XML=<xml>
<item id="6" title=" "/>
<item id="12" title=" "/>
<item id="43" title="shch8.com"/>
<item id="26" title="webBase"/>
<item id="17" title="shch8.com/webbase"/>
</xml>;
IDが20より大きいデータを抽出したいですが、どうしますか?forとifサイクルでid>20を判断して、もしあなたが本当にこのようにするならば、このblogを見て、このため幸運と感じるべきです!
私は3000個のデータを持っていますが、まだforを使うと、大変な過程です。
1.AS 3のXMLはE 4 Xの処理標準を実現しました。XMLとXMLListの値取り方法に協力して、XMLデータを柔軟に操作することができます。正しいやり方はこれです。
AS 3コード
trace(xml.child("*").(@id>20))
/*
<item id="43" title="shch8.com"/>
<item id="26" title="webBase"/>
*/
もちろん、このように書いてもいいです。AS 3コード
trace(xml.item.@id>20)
XML结点名を使って値を取ります。结果は同じです。2.続いて、私達はtitleに対して検索もできます。コード:
AS 3コード
var xml:XML=<xml>
<item id="6" title=" "/>
<item id="12" title=" "/>
<item id="43" title="shch8.com"/>
<item id="26" title="webBase"/>
<item id="17" title="shch8.com/webbase"/>
</xml>;
var searchKey:String=" "
trace(xml.child("*").(@title.indexOf(searchKey)!=-1));
/*
<item id="6" title=" "/>
<item id="12" title=" "/>
*/
3.私がダサいと言っているかもしれませんが、indexOfで文字を判断してもいいです。なぜ正規表現を使わないですか?はい、このように書いてもいいです。AS 3コード
xml.child("*").(pattern.test(@title));
しかし、これはRegExpで識別できる方法ではありません。関数エージェントの判断を書きます。AS 3コード
var xml:XML=<xml>
<item id="6" title=" "/>
<item id="12" title=" "/>
<item id="43" title="shch8.com"/>
<item id="26" title="webBase"/>
<item id="17" title="shch8.com/webbase"/>
</xml>;
var searchKey:String="shch"
var pattern:RegExp=new RegExp(searchKey);
trace(xml.child("*").(regTest(@title)));
function regTest(obj:String):Boolean{
return pattern.test(obj)
}
/*
<item id="43" title="shch8.com"/>
<item id="17" title="shch8.com/webbase"/>
*/
4.最後に私達が取ったデータは全部xmlListタイプです。もしXMLで操作するのが好きなら、もう一つXMLオブジェクトを作成できます。
AS 3コード
var xml:XML=<xml>
<item id="6" title=" "/>
<item id="12" title=" "/>
<item id="43" title="shch8.com"/>
<item id="26" title="webBase"/>
<item id="17" title="shch8.com/webbase"/>
</xml>;
var searchKey:String="shch"
var pattern:RegExp=new RegExp(searchKey);
var getXML:XML=<data/>
getXML.appendChild(xml.child("*").(regTest(@title)))
trace(getXML)
function regTest(obj:String):Boolean{
return pattern.test(obj)
}
/*
<data>
<item id="43" title="shch8.com"/>
<item id="17" title="shch8.com/webbase"/>
</data>
*/