2009-12-21 4 views
0

다음 샘플을 제공합니다. 현재 노드가 현재 < 리 > 같은 경우XSLT : 이전 노드의 속성 설정

<ul id="s-nav"> 
    <xsl:for-each select="$currentPage/ancestor-or-self::node [@level=2]/node"> 
    <li> 
     <xsl:if test="$currentPage/ancestor-or-self::node/@id = current()/@id"> 
     <xsl:attribute name="class">current</xsl:attribute> 
     </xsl:if> 
    </li> 
    </xsl:for-each> 
</ul> 

이 class 속성은 '현재'로 설정된다.

이제 if 블록 내에 두 번째 특성을 설정하려고하지만 이전의 경우 <li>의 경우 현재가 아닌 두 번째 특성을 설정하려고합니다. 이 아이디어를 어떻게 달성 할 수 있을까요?

감사합니다.

+0

class = "previous"를 (를) 첨부 하시겠습니까? 만약 그렇다면 이것은 현재와 일치하는 것 앞에있는'li' 또는 현재와 일치하는 모든'li'에 적용됩니까? XSLT에 대해 질문 할 때 사람들이 구조를 시각화하는 데 도움이되는 XSLT와 샘플 XML을 모두 제공하면 도움이되는 경우가 많습니다. –

+0

네 말이 맞아. 클래스는 경기 전에 적용됩니다. – Jeroen

+0

currentPage는 어떻게 정의됩니까? XML은 어떻게 생겼습니까? 어떤 XSLT 엔진을 사용하고 있습니까? –

답변

0

XSLT가 이미 출력 된 노드의 속성을 수정할 수 있다고 생각하지 않습니다. 가장 좋은 방법은 각 노드를 출력으로 생각하고 다양한 속성을 가져야하는 조건을 설정하는 것입니다.