문제

그녀는 테스트 케이스에 대한 일부 코드입니다. 처음 두 쿼리가 결과를 낳는 이유를 이해하지 못하지만 세 번째 쿼리는 그렇지 않습니다. 어떤 아이디어?

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  creationComplete="onInit();" >
    <mx:Script>
        <![CDATA[

private function onInit():void{
    var someXML:XML = 
        <libs>
            <library libLevel="System">
                <type typeName="Established Problem" typeID="2">
                    <template templateName="asthma" templateAbbr="asthma-fu" templateInsertDate="05/03/2004" templateID="14"/>
                    <template templateName="gastroesophageal reflux" templateAbbr="GERD" templateInsertDate="05/03/2004" templateID="15"/>
                </type>
            </library>
        </libs>;
        trace("library");
        trace(someXML.library.(@libLevel == "System"));//works as expected
        trace("type");
        trace(someXML.library.type.(@typeID == "2"));//works as expected
        trace("template");
        trace(someXML.library.type.template.(@templateID == "14"));//returns nothing
            }
        ]]>
    </mx:Script>
</mx:Application>

작동하는 것은 쿼리하지 않는 것 아래에 더미 노드를 추가하는 것입니다.

var someXML:XML = 
        <libs>
            <library libLevel="System">
                <type typeName="Established Problem" typeID="2">
                    <template templateName="asthma" templateAbbr="asthma-fu" templateInsertDate="05/03/2004" templateID="14">
                        <blah/>
                    </template>
                    <template templateName="gastroesophageal reflux" templateAbbr="GERD" templateInsertDate="05/03/2004" templateID="15">
                        <blah/>
                    </template>
                </type>
            </library>
        </libs>;

아래에 노드가있는 경우에만 작동하는 이유는 무엇입니까?

도움이 되었습니까?

해결책

당신은 결과를 얻고 있습니다. XML.toString (호출 trace()) 단순한 내용을 반환합니다 XML 노드와 단일 결과 노드에는 내용이 없습니다. (실제로 결과는 단일 노드입니다 XMLList, 그래서 그것은 an처럼 행동합니다 XML 마디.)

차이점을 보려면 :

    var x:XMLList = someXML.library.type.template.(@templateID == "14");
    trace(x);                // empty string
    trace(x.toXMLString());  // expected XML node
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top