테스트 케이스를위한 코드입니다. 처음 두 쿼리가 결과를 생성하는 이유는 모르지만 세 번째 쿼리는 그렇지 않습니다. 어떤 아이디어?이 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>;
왜 그 아래에 노드가있는 경우에만 작동합니까?
그냥 코멘트를. 상위 노드로 결과를 필터링하지 않으면 someXML..template (@ templateID == "14") 표기법을 사용할 수 있습니다. 그러면 전체 노드 트리에서 해당 ID를 가진 모든 노드를 찾습니다. –
@Robert Bak - 고마워 +1. 나는 모든 사람들을 위해 가능한 한 간단하게 테스트 케이스를 만들기 위해 노력하고 있다는 것을 알고있었습니다. – invertedSpear