2013-07-27 1 views
1

xslt에 새롭고 PDF 생성을위한 xslt 템플릿을 작성하려고합니다.XSLT 템플릿이 모드 특성 집합과 일치하지 않습니다.

<element name="rootElement"> 
    <attributes /> 
    <elements> 
     <element name="childElement"> 
      <attributes> 
       <attribute name="attributename" value="Yes" /> 
      </attributes> 
     </element> 
    </elements> 
</element> 

I 모든 요소 이름 인쇄 및 표 형식으로 대응하는 값에 더하여 각각의 하위 요소로 특정 텍스트를 표시 할 필요 여기

는 입력 XML의 단편이다.

나는 몇 가지 연구를 한 후 템플릿 일치와 함께 모드 속성을 설정하여이를 달성 할 수 있다고 생각했습니다. 모드 템플릿 일치가 실행되지 않은 이유

<?xml version="1.0" encoding="UTF-8"?> 
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" font-size="18.0pt" font-family="Arial" font-weight="bold"> 
      Display something I. 
</fo:block> 

사람이 말해 주시겠습니까 :

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> 
    <xsl:template match="DOCUMENT"> 
     <xsl:apply-templates select="DATA" /> 
    </xsl:template> 

    <xsl:template match="DATA"> 

     <xsl:apply-templates select="element" /> 
     <xsl:apply-templates select="element" mode="test" /> 

    </xsl:template> 

    <xsl:template match="element"> 
     <fo:block font-size="18.0pt" font-family="Arial" 
      font-weight="bold"> 
      Display something I. 
     </fo:block> 
    </xsl:template> 

    <xsl:template match="element" mode="test"> 
     <fo:block font-size="18.0pt" font-family="Arial" 
      font-weight="bold"> 
      Display something II. 
     </fo:block> 
    </xsl:template> 
</xsl:stylesheet> 

다음은 실행 후 출력입니다 : 여기에 내가 쓴 코드는?

모든 의견/해결책/통찰력을 크게 높이 실 것입니다.

+0

노드 트리를 계속 처리하려면'element' 템플리트 어딘가에'apply-templates'가 필요하지만 예상되는 결과는 무엇입니까? – JLRishe

+0

답장을 보내 주셔서 감사합니다. mode 속성이있는 요소 템플릿을 호출하고 표준 요소 템플릿과 일치하는 내용 외에 Display Something II가 포함 된 xml을 인쇄하고 싶습니다. – user2624928

+0

현재 XSLT가 XML에 존재하지 않는 ** DOCUMENT ** 및 ** DATA ** 요소를 찾고 있습니다. XML 샘플이 정확합니까? –

답변

0

DATA 요소가 없으므로 match = "element"템플리트가 기본 내장 템플리트에서 호출되고 있어야합니다.이 템플리트는 mode = "test"와 함께 apply-templates를 수행하지 않습니다.

0

<xsl:template match="DOCUMENT"><xsl:template match="DATA">도 실행되지 않습니다.

당신이 그대에게 두 번째 템플릿을 변경하는 경우 :

<xsl:template match="/"> 

    <xsl:apply-templates select="element" /> 
    <xsl:apply-templates select="element" mode="test" /> 

</xsl:template> 

당신이 당신의 예상 결과를 볼 수 있습니다.

관련 문제