2

考虑这个 XML:

<root>
    <node>
        <subNode>123</subNode>
        <anotherNode>abc</anotherNode>
    </node>
    <node>
        <anotherNode>abc</anotherNode>
    </node>
</root>

这是可行的,因为 E4X 只找到 1 个匹配项,并返回一个 XML 而不是 XMLList:

trace(myXml.node.subNode); // 123

但是为什么这会抛出一个Error #1065: Variable subNode is not defined

trace(myXml.node.(subNode == 123).anotherNode);

为什么不追踪<anotherNode>abc</anothernode>

4

2 回答 2

1

这不起作用,因为玩家试图subNode在 each中找到node,但它不能,所以ReferenceError抛出异常。

在这种情况下,您可以使用hasOwnProperty方法来确保属性存在:

trace(myXml.node.(hasOwnProperty("subNode") && subNode == 123).anotherNode);
于 2013-09-07T10:02:09.537 回答
0

我已经测试过了,似乎第二个节点没有子节点。所以尝试添加子节点(虽然我认为应该有另一种方法来解决这个问题)。

<root>
   <node>
       <subNode>123</subNode>
       <anotherNode>abc</anotherNode>
    </node>
    <node>
        <subNode>321</subNode>
        <anotherNode>abc</anotherNode>
    </node>
</root>
于 2013-06-25T04:36:10.430 回答