2015-01-21 2 views
1

XSL을 사용하여 두 번째 행으로 루프를 분할하려하지만이 방법에 대해 잘 모르겠습니다. 설명 할 코드를 보여 드리겠습니다.XSL 및 XML을 사용하여 동적 HTML 테이블에서 행 분할

XML

<main> 
<book> 
    <name>Harry Potter 1</name> 
    <pages>347</pages> 
    <authors> 
     <name>J.K Rowling</name> 
     <age>49</age> 
    </authors> 
    <authors> 
     <name>Dan Brown</name> 
     <age>59</age> 
    </authors> 
</book> 
<book> 
    <name>Harry Potter 2</name> 
    <pages>800</pages> 
    <authors> 
     <name>J.K Rowling</name> 
     <age>49</age> 
    </authors> 
    <authors> 
     <name>Barack Obama</name> 
     <age>40</age> 
    </authors> 
</book> 

XSL

<table class="table table-bordered" border="1"> 
<xsl:for-each select="main/book"> 
    <tr> 
     <td><xsl:value-of select="name" /></td> 
     <td><xsl:value-of select="pages" /></td> 
    </tr> 
    <tr> 
     <xsl:for-each select="./authors"> 
      <td><xsl:value-of select="name" /></td> 
      <td><xsl:value-of select="age" /></td> 
     </xsl:for-each> 
    </tr> 
</xsl:for-each> 
</table> 

현재이 이런 식으로 뭔가를 출력합니다. 무엇을 달성 할 싶습니다

enter image description here

enter image description here

같은 당신이 저자가 서로 아래 스택이 아니라 서로 옆에 있지 볼 수 있듯이.

누구든지 나에게이 점을 밝힐 수 있습니까? 나는 그것을 매우 감사 할 것이다! 읽어 주셔서 감사합니다.

+0

을 표시되는 출력은 코드를 사용하여 수신되는 출력이 아닙니다. 도서 당 한 행만 있고 두 행은 없습니다. –

+0

@ michael.hor257k 죄송합니다. 일치하는 결과 코드입니다. – BaconJuice

+0

내 대답에 표시된대로 내부의''안에 두 번째로 열리는 ''태그를 옮기면됩니다. –

답변

1

요청 된 출력은 많은 의미 (같은 열에 책과 저자 이름을 혼합뿐만 아니라 페이지와 저자의 나이 수)를 확인하지 않는 것,하지만 사용하여 쉽게 달성 할 수있다 :

<xsl:template match="/"> 
    <table class="table table-bordered" border="1"> 
     <xsl:for-each select="main/book"> 
      <tr> 
       <td><xsl:value-of select="name" /></td> 
       <td><xsl:value-of select="pages" /></td> 
      </tr> 
      <xsl:for-each select="authors"> 
       <tr> 
        <td><xsl:value-of select="name" /></td> 
        <td><xsl:value-of select="age" /></td> 
       </tr> 
      </xsl:for-each> 
     </xsl:for-each> 
    </table> 
</xsl:template> 
관련 문제