2017-02-21 6 views
0

XML 파일에는 계정과 계정 목록 (ID 및 AccountDescription 포함)이 들어 있습니다. 아래 예에서 2 개의 계정이 있습니다.모든 XSL 요소를 표시하는 방법?

<?xml version="1.0"?> 
<Accounts> 
<Account> 
    <ID>5</ID> 
    <AccountDescription>Account Description 5</AccountDescription> 
</Account> 
<Account> 
    <ID>8</ID> 
    <AccountDescription>Account Description 8</AccountDescription> 
    </Account> 
</Accounts> 

아래 XSL을 사용하여, 그것은 2 페이지를 PDF 파일을 생성하고, 각 페이지는 헤더의 ID 및 AccountDescription이 있지만 아래 데이터/컨텐츠는 다음과 같이,이 없다 :

에를 페이지 1 :

,745 :

ID의 AccountDescription 2 페이지

ID의 AccountDescription

나는이 같은 데이터를 보여 드리고자합니다 :

ID의 AccountDescription을

5 계정 설명 5

8 계정 설명 8

어떻게 할 수 있습니까? 고맙습니다.

이 내 현재 XSL입니다 :

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:fo="http://www.w3.org/1999/XSL/Format"> 

<xsl:template match="Accounts"> 
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> 
    <fo:layout-master-set> 
      <fo:simple-page-master 
       master-name="main" 
       margin-top="0px" 
       margin-bottom="0px" 
       margin-left="18px" 
       margin-right="18px"> 
       <fo:region-body margin-top="0.75in" margin-bottom="2in" margin-left="18px" margin-right="18px"/> 
       <fo:region-before extent="0.75in"/> 
       <fo:region-after extent="1.5in"/> 
       <fo:region-end extent="75px"/> 
     </fo:simple-page-master> 
    </fo:layout-master-set> 
    <xsl:apply-templates select="Account"/> 
</fo:root> 
</xsl:template> 

<xsl:template match="Account"> 
<fo:page-sequence master-reference="main"> 
    <fo:flow flow-name="xsl-region-body"> 
     <fo:table font-size="10pt"> 
      <fo:table-column column-width="15mm"/> 
      <fo:table-column column-width="55mm"/> 
      <fo:table-body> 
       <fo:table-row> 
        <fo:table-cell > 
         <fo:block text-align="right"><xsl:value-of select="ID"/></fo:block> 
        </fo:table-cell> 
        <fo:table-cell > 
         <fo:block text-align="right"><xsl:value-of select="AccountDescription"/></fo:block> 
        </fo:table-cell> 
        </fo:table-row> 
      </fo:table-body> 
     </fo:table> 
    </fo:flow> 

</fo:page-sequence> 
</xsl:template> 

</xsl:stylesheet> 
+0

업데이트 XSLT. 스타일 시트에 문제가 있거나 샘플에 문제가 있습니까? –

+0

네, 맞습니다. 내 원래 게시물을 편집 했으므로 이제는 를 호출하지 않습니다. 대신, 나는 "ID"/>을 수행합니다. 이것으로 데이터를 볼 수 있지만 각 데이터는 다른 페이지에 표시됩니다. 예 : 5 페이지 - 계정 설명 5, 2 페이지 - 8 페이지 계정 설명 8. 모든 데이터를 같은 페이지? 고맙습니다. – faujong

답변

1

가 어떻게 같은 페이지에있는 모든 데이터를 표시 할 수 있습니까?

fo:page-sequence 하나만 사용해야합니다. Account 템플릿에서 Accounts 템플릿으로 이동하십시오.

당신은/경기`AccountRow`에 템플릿을 적용하기 위해 노력하고 있지만, 그 요소는 샘플 XML에 존재하지 않는

<xsl:stylesheet version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:fo="http://www.w3.org/1999/XSL/Format"> 

    <xsl:template match="Accounts"> 
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> 
     <fo:layout-master-set> 
     <fo:simple-page-master 
      master-name="main" 
      margin-top="0px" 
      margin-bottom="0px" 
      margin-left="18px" 
      margin-right="18px"> 
      <fo:region-body margin-top="0.75in" margin-bottom="2in" margin-left="18px" margin-right="18px"/> 
      <fo:region-before extent="0.75in"/> 
      <fo:region-after extent="1.5in"/> 
      <fo:region-end extent="75px"/> 
     </fo:simple-page-master> 
     </fo:layout-master-set> 
     <fo:page-sequence master-reference="main"> 
     <fo:flow flow-name="xsl-region-body"> 
      <xsl:apply-templates select="Account"/> 
     </fo:flow> 
     </fo:page-sequence> 
    </fo:root> 
    </xsl:template> 

    <xsl:template match="Account"> 
    <fo:table font-size="10pt"> 
     <fo:table-column column-width="15mm"/> 
     <fo:table-column column-width="55mm"/> 
     <fo:table-body> 
     <fo:table-row> 
      <fo:table-cell > 
      <fo:block text-align="right"><xsl:value-of select="ID"/></fo:block> 
      </fo:table-cell> 
      <fo:table-cell > 
      <fo:block text-align="right"><xsl:value-of select="AccountDescription"/></fo:block> 
      </fo:table-cell> 
     </fo:table-row> 
     </fo:table-body> 
    </fo:table> 
    </xsl:template> 

</xsl:stylesheet> 
+0

그거 고마워! 그러나 각 행에 대해 열 머리글을 반복합니다. 그래서 약간 변경했습니다. ID : "right"> 계정 설명 faujong