2010-01-14 1 views
1

테스트 케이스를위한 코드입니다. 처음 두 쿼리가 결과를 생성하는 이유는 모르지만 세 번째 쿼리는 그렇지 않습니다. 어떤 아이디어?이 XML 쿼리가 작동하지 않는 이유는 무엇입니까?

<?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>; 

왜 그 아래에 노드가있는 경우에만 작동합니까?

+1

그냥 코멘트를. 상위 노드로 결과를 필터링하지 않으면 someXML..template (@ templateID == "14") 표기법을 사용할 수 있습니다. 그러면 전체 노드 트리에서 해당 ID를 가진 모든