2012-07-07 2 views
0

XML 파일의 한 부분에서 특정 번호를 변수 ($ ResId)에 저장했으며 다른 섹션에는 다음과 같은 내용이 있습니다.속성이없고 XML에 특정 값을 가진 노드를 선택하는 방법

<CalculatedWho> 
    <ResourceId>85</ResourceId> 
    <ResourceId>49</ResourceId> 
    <ResourceId>43</ResourceId> 
    <ResourceId>41</ResourceId> 
</CalculatedWho> 

변수에 저장된 숫자와 일치하는 항목이 있으면 특정 작업을 수행합니다. 나는 다음과 몇 가지 다른 것들을 시도했지만 아직 제대로 이해하지 못했다.

<xsl:for-each select="//StrategyPool/Strategy"> 
    <xsl:if test="//StrategyPool/Strategy/CalculatedWho/ResourceId[text()=$ResId]" > 
    <xsl:value-of select="StrategyName"/> 
    </xsl:if> 
</xsl:for-each> 

문제는 IF 테스트에서 값이 반환되지 않는다는 것입니다. 나는 또한은 if 테스트로 다음 시도했다 :

<xsl:if test="/CalculatedWho/ResourceId[text()=$ResId]" > 

+0

좋아요, 당신이 직면 한 문제는 무엇입니까? –

답변

1

특정 문제를 부족, 내가 바로 잘못된 것으로보고 뭔가 당신이 "// StrategyPool을 필요로하지 않습니다/전략/"부분을 테스트합니다. 그 시점의 컨텍스트 노드는 이미 전략 요소입니다. 또한 StrategyName의 값을 선택하려는 경우 전략 노드의 CalculatedWho 노드/직계 하위 요소의 형제인지 확인하십시오. 그 외에도, $ ResId의 값/유형에 따라 약간의 이상한 강요 행위가 발생할 수 있습니다.

관련 문제