2017-03-29 9 views
-1

템플릿 템플릿을 적용 적용, 이렇게 될 것입니다 내 XML을 고려 여기XSLT 내가에 문제를했습니다 조절

<card> 
    <pre/> 
<main>  
    <step1/> 
    <step1/> 
    <panels> 
    <panel/> 
    <panel/> 
    </panels> 
    <step1/> 
<main> 
</card> 

코드의 주요 모든 1 단계 내부 더욱 1. 및 증가와 함께 시작됩니다 입력 이제 패널이 오면 각 패널을 한 걸음으로 내딛어 3.부터 시작합니다. 4. 다음 단계 1이 5가됩니다.

mainfunc에서 step1에 대한 템플릿을 적용하면, 그것은 모든 step1에 적용됩니다. 패널 뒤의 step1도 첫 번째 장소에 올 것입니다. 1 단계 ~ 3 단계에 템플 플레이트를 적용하고 싶습니다 .1 그런 다음 패널을 적용한 다음 마지막 단계 1을 적용하십시오. 단계 1 수가 항상 동일하지는 않습니다. 내가으로이 같은

현재 필자 뭔가, 또한 3

+0

입니다 이 경우에 "넘버링"이 어떻게 작동해야하는지 명확히해야합니다. 고맙습니다! –

+0

번호 매기기는 괜찮습니다. 패널의 경우 단계 번호 \t Abi

+0

내 유일한 관심은 단계와 같은 시퀀스 방식으로 템플릿을 호출하고 다음 단계와 패널 다음에 단계를 수행하는 방법입니다 – Abi

답변

0

이 같은 패널을 번호 순서 순서에 템플릿을 적용하는 수정하는 방법

<xsl:template match="mainfunc"> 
    <xsl:apply-templates select="step1"/> 
    <xsl:if test="contains($wcType,'P')"> 
    <xsl:apply-templates select="panels"/> 
    </xsl:if> 
..... 

는 추측의 비트입니다 전적으로 싶은,하지만 난 당신이 무엇을 할 수 있는지 생각하는 것은이 ...

<xsl:apply-templates select="step1|panels[contains($wcType,'P')]"/> 

| 기호가 조합 연산자 및 노드 줘야의 조합입니다 분명하다 l 문서 순서대로 선택하십시오. 그러면 첫 번째 step1을 선택한 다음 panels을 선택한 다음 step1을 선택합니다.

<card> 
    <main>  
    <step1/> 
    <step1/> 
    <panels> 
     <panel/> 
     <panel/> 
    </panels> 
    <step1/> 
    </main> 
</card> 

다음 예를 들어

이 XSLT ...이 XML에 적용

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:output method="xml" indent="yes" /> 

    <xsl:variable name="wcType" select="'Pie'" /> 

    <xsl:template match="main"> 
     <xsl:apply-templates select="step1|panels[contains($wcType,'P')]"/> 
    </xsl:template> 

    <xsl:template match="step1|panel"> 
     <xsl:copy> 
      <xsl:number count="step1|panel" level="any" /> 
     </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 

은 ... 당신은 출력을 보여 출력 할 수

<step1>1</step1> 
<step1>2</step1> 
    <panel>3</panel> 
    <panel>4</panel> 
<step1>5</step1> 
+0

이처럼 주어진 패널 템플릿의 , 이제 시퀀스가 ​​잘 호출됩니다. step1 2. step1 1.panel 2.panel 3.step1, 번호 매기기는 적절한 것이 아닙니다. 이제는 pleaese 도움말 패널이 패널의 부모 태그에 포함될 것이므로, 패널을 계산하려면 – Abi

+0

감사합니다. Tim. 그것은 많은 도움이되었다! – Abi

+0

번호 매기기에 대한 도움이 필요하면 번호가 매겨진 예상 출력을 표시하도록 질문을 편집해야합니다. 코드는 주석에서 읽기가 정말 어렵습니다. 감사. –