0

xml を xml にインポートし、ActionScript 3 で読み取りたいと考えています。単一のインポートされた xml-File をインポートすることは可能ですが、そのように使用するには大きな問題があります。

したがって、最初の xml-File は次のようになります。

<!DOCTYPE doc [
<!ENTITY bonuses SYSTEM "bonuses.xml">
]>    
<mission>
            ...
            <wealth money="1000" />
            <bonuses>bonus</bonuses>
            <bonuses>
                <first>&bonuses;</first>
                <second>&bonuses;</second>
            </bonuses>
        </mission>

私の2番目のファイルはそのように見えます:

<?xml version="1.0" encoding="utf-8"?>
<bananas>
    <descr>Banana Description</descr>
    <impact>You gain more gold!</impact>
    <bonus>15</bonus>
</bananas>

この関数を使用してxmlファイルにアクセスしようとしています:

private function xmlLoaded(e:Event):void 
{
    _xml = new XML(e.target.data);
    trace("XML LOADER: XML LOADED CORRECTLY");
// Correct Output: Bonus
        trace("XML LOADER: BONUS 0: " + _xml.mission[0].bonuses[0]); 
// Incorrect Output: Nothing!
    trace("XML LOADER: BONUS 1: " + _xml.mission[0].bonuses[1].first.descr);
    _stage.dispatchEvent(new Event("completed"));
}

私が言ったように、これは最初にロードされたxmlファイルではうまくいきますが、インポートされたものではうまくいきません。何かソウルションはありますか、それともアクションスクリプトの制限ですか?

どうもありがとう!

あいさつマイケル

4

2 に答える 2

0

さて、あなたのコードには奇妙なことがたくさんあります。

1) 両方の XML を同じオブジェクトにロードしています_xmlか? XML ごとに異なるオブジェクトが必要です。次のコードを実行すると、内部にあるものを削除し、_xml新しいものを配置します。

_xml = new XML(e.target.data);

2)もちろん、ノードを正しく使用していないため、2つのXMLオブジェクトがあったとしても、2番目のトレースは機能しません...単純にこれである必要があります。

trace(_xml.descr);

2 つの XML を 1 つの XML オブジェクトに結合する必要がある場合は、両方の XML をロードした後にそれを行う必要があります。

于 2013-07-05T17:40:59.053 に答える