0

私は今日私を悩ませているこのXMLの問題を抱えています、そして私はそれを表現する方法がわからないので解決策を見つけることができません。私のXMLファイルは次のようになります。

<TEST>
  <ITEM_ID>0123
    <ITEM_SIZE>Medium</ITEM_SIZE>
    <ITEM_COLOR>Red</ITEM_COLOR>
  </ITEM_ID>
</TEST>

すべてが正常に機能し(ランダムな要素を見つけて表示または消去できます)、必要な情報を取得できますが、myXML_XML.ITEM_ID [0]でアクセスできないのは、「0123」と表示されていることだけです。何も、エラーも、何も得られません。myXML_XML.ITEM_ID [0] .ITEM_SIZEを確認すると(文字列変数に入力すると、「Medium」になります)。

XMLは誤解を招く可能性があると思ったので、別のファイルで試してみました。

<TEST>
      <ITEM_ID REF="0123">
        <ITEM_SIZE>Medium</ITEM_SIZE>
        <ITEM_COLOR>Red</ITEM_COLOR>
      </ITEM_ID>
    </TEST>

myXML_XML.ITEM_ID[0].REFまたはmyXML_XML.ITEM_ID[0].REF.textをチェックすると、同じ結果が得られました。

私を啓発するのに十分親切な人はいますか?

4

1 に答える 1

1

最初のXMLスキーマは少しずれているようですが、それでも有効です。ノードのchildren()メソッドを試してみることをお勧めします。

myXML_XML.ITEM_ID[0].children()[0] // This is the text node

実際にはもっと読みやすい他の例では、属性にアクセスするために@記号を使用する必要があります

myXML_XML.ITEM_ID[0].@REF

完全な例を次に示します。

var test:XML = new XML(
    <foo>
        <bar id="4444">
            efghi
            <baz>1234</baz>
            <quux>6789</quux>
        </bar>
        <bar id="4445">
            zxcv
            <baz>4567</baz>
            <quux>9876</quux>
        </bar>
    </foo>
);

trace(test.bar[0].children()[0]); // efghi
trace(test.bar[1].@id); // 4445
于 2012-06-10T07:10:17.747 に答える