2012-04-20 13 views
0

私はAS2からAS3に移行していて、XMLから問題を掴んでいるノードに遭遇しました。私はAS3でXMLファイル全体を取得(およびトレース)できますが、firstChildを使用して最初のタグをノードとして保存し、nextSiblingを使用してタグをループする必要があります。しかし、AS3では、以前のAS2コードが実際にコンテンツを取得するとき、firstChildは空のままになります。私は間違って何をしていますか? (私は、複数のXMLファイルのコードブロックを再利用するので、私はその名前でタグを呼び出すことはできません)AS3 XMLノードのトラバーサル

var eRoot = exampleXML.firstChild; 
while (eRoot != null) { 
    //do stuff 
    eRoot= eRoot.nextSibling; 
} 

私のテストXMLファイル:firstChildnextSiblingどちらもプロパティとして存在しているためだ

<?xml version="1.0" encoding="UTF-8"?> 
<content> 
    <version>cd</version> 
    <lessonlock>~-*~-*</lessonlock> 
    <expiryDate>**#*#**##**##**##*##********###*</expiryDate> 
    <isSpanish>true</isSpanish> 
    <server>http://www.exampleSite.com</server> 
</content> 
+0

as2スタイルのXMLにXMLDocumentを使用してみてくださいhttp://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/xml/XMLDocument.html – www0z0k

+0

ありがとうございました。 – woodlumhoodlum

答えて

2

AS3 XMLオブジェクトであなたがそれをやっているところでは、ノード<firstChild><nextSibling>を探しています。

API for XML、さらにはAdobe's guide to E4Xをお読みください。

+0

そうですね、私はそれを理解していませんでした。しかし、私はそれぞれ異なるタグを持つ異なるXMLファイルを使用しているため、問題はまだ存在します。タグを取得するためにタグの名前を事前に知りたくないので、もはや方法がないようですこれをする。タグを分割して別のデータ構造に格納するために文字列操作を使用しない限り – woodlumhoodlum

+0

リンク先のソースを本当に*読んでください。もちろん、XMLListsを使用して、名前を知らなくても子ノードをたどることができます。 'node。*'はすべての子ノード、 'node .. *'子孫ノードなどを返します。 – weltraumpirat

+0

私は昨日完全に最初のソースを読みました。私は昨日XMLListを試してみましたが、最初のスロットにxmlファイル全体を含む長さ1のリストしか作成できませんでした。私はおそらく何かを逃したので、私はその道を試し続けます、ありがとう。 – woodlumhoodlum