第一个元素的AS3 XML问题

时间:2012-06-10 06:54:55

标签: xml actionscript-3

我有这个XML问题,今天困扰着我,我找不到解决方案,因为我不知道如何表达它。 我的XML文件如下所示:

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

一切正常(我可以找到一个随机元素,显示或删除它)并且可以获得我想要的信息,但是我唯一无法使用myXML_XML.ITEM_ID [0]访问它,其中shoud说“0123” 。我什么都没得到,没有错误,没有。当我检查myXML_XML.ITEM_ID [0] .ITEM_SIZE时(当放入String Var时,我得到“中”)。

我认为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

时,给了我相同的结果

任何人都可以开导我吗?

1 个答案:

答案 0 :(得分: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