2012-09-10 2 views
2

속성 :필터 나는 다음과 같은 XML을 한 경우 - 각 XML로는

<Results> 
    <Option isDefault="true" value="1"> 
    <DisplayName> 
     One 
    </DisplayName> 
    </Option> 
    <Option value="2"> 
    <DisplayName> 
     Two 
    </DisplayName> 
    </Option> 
    <Option value="3"> 
    <DisplayName> 
     Three 
    </DisplayName> 
    </Option> 
</Results> 

가 어떻게 isDefault="true"이있는 Optionvalue 액세스 할 수 있습니까?

은 지금까지 나는 시도했다 :

<xsl:variable name="varName"> 
    <xsl:for-each select="Results/Option[isDefault='true']"> 
     <xsl:value-of select="@value" /> 
    </xsl:for-each> 
</xsl:variable> 

답변

3

당신이 단 하나의 이러한 요소가 또는 당신은 단지 최초의 요소에 관심이 있다면 당신은 단순히

<xsl:value-of select="Results/Option[@isDefault = 'true']/@value"/> 
을 사용할 수 있습니다 알고있는 경우

for-each은 필요하지 않습니다. XSLT 1.0 및 value-of에 적용되며 위의 2.0은 value의 모든 속성 값 (Results/Option[@isDefault = 'true'])을 출력합니다. 그 isDefault 속성 "true"의 스트링 값을 갖는 가장 하나 개 Option 소자에있을 경우 보장

0
<xsl:variable name="varName"> 
    <xsl:for-each select="Results/Option[@isDefault='true']"> 
     <xsl:value-of select="@value" /> 
    </xsl:for-each> 
</xsl:variable> 
3

,

다음이 XPath는 한 줄 사용

/*/*[@isDefault='true']/@value