2009-11-09 3 views
0

나는 저장 위치의 XML 문서를 가지고있다. 저장 노드는 저장소의 유형을 나타내는 Type 노드와 상태에 따라 각 Location에 키를 추가하기위한 기존 템플릿 세트를 가지며,이 템플릿은 상태에 따라 HTML에 추가된다.키를 생성하는 XSL 선택에 추가 기준을 추가 할 수 있습니까?

내가해야 할 일은 유형이 1 인 디스플레이에서 모든 주를 제외하는 것입니다. for-each 루프에서 해당 위치의 표시를 건너 뛰기는 쉽지만 그 상태를 표시하는 상태로 끝납니다 값이 없습니다. 템플릿이 같다고

<xsl:apply-templates select="$locations/descendant::Locations" mode="locations.list"/> 

: 여기

<select/> HTML 태그 내부의 코드입니다

<xsl:template match="Locations" mode="locations.list"> 
    <xsl:apply-templates select="Location[generate-id(.) = generate-id(key('state', State)[1])]" mode="locations.list.location"/> 
</xsl:template> 

이 호출하는 템플릿 보이는 같은 다음에 일반적으로

<xsl:template match="Location" mode="locations.list.location"> 
    <option value="state"><xsl:value-of select="normalize-space(State)"/></option> 
    <xsl:for-each select="key('state', State)"> 
     <option value="{normalize-space(SiteKey)}"><xsl:value-of select="normalize-space(Location)/></option> 
    </xsl:for-each> 
    <option value=""/> 
</xsl:template> 

<xsl:apply-templates select="Location[generate-id(.) = generate-id(key('state', State)[1])]" mode="locations.list.location"/> 나는 선택에 내가 관심이 있다는 것을 나타 냈을 뿐이다. Type이 '1'인 Locations에서는 키 생성 코드와 함께 해당 조건을 삽입 할 수있는 방법을 찾을 수 없습니다. 고유 ID가 현재 State 가진 첫번째 Location 동일

<xsl:apply-templates 
    mode = "locations.list.location" 
    select = "Location[ 
    generate-id(.) 
    = 
    generate-id(key('state', State)[Type = '1'][1]) 
    ]" 
/> 

선택 Location의 노드 : 전체 입력 XML을 보지 않고

답변

1

,이 추측의 비트입니다.

+0

궁극적으로 내가 한 일에 매우 가깝습니다. 나는 내가 간과 한이 코드 조각을 포함하는 것을 게을리했다. 돌이켜 보면./한숨 – Otis

+0

그런 삶입니다. ;-) – Tomalak

관련 문제