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 (放入 String Var 时,我得到 "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 回答