如何自动选择下一个块xsl:fo

时间:2013-03-19 07:36:41

标签: xslt foreach selector

如何自动选择下一个块而不列出“xsl:for-each select =”name | lastname | third“”?

XSL:

<fo:table>
       <fo:table-body>
          <xsl:for-each select="table">
         <fo:table-row>
           <xsl:for-each select="name|lastname|third">
            <fo:table-cell>
               <fo:block><xsl:value-of select="."/></fo:block>
            </fo:table-cell>
           </xsl:for-each>
         </fo:table-row>
           </xsl:for-each>
       </fo:table-body>
</fo:table>

XML:

    <table>
        <name>Name</name>
        <lastname>Lastname</lastname>
        <third>Third</third>
    </table>

1 个答案:

答案 0 :(得分:0)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>


<xsl:template match="/">

<table>
  <table-body>
    <xsl:for-each select="table/child::*">
      <table-row>

          <table-cell>
            <block>
              <xsl:value-of select="current()"/>
            </block>
          </table-cell>

      </table-row>
    </xsl:for-each>
  </table-body>
</table>

</xsl:template>
</xsl:stylesheet>

输出:

<?xml version="1.0" encoding="utf-8"?>
<table>
<table-body>
<table-row>
  <table-cell>
    <block>Name</block>
  </table-cell>
</table-row>
<table-row>
  <table-cell>
    <block>Lastname</block>
  </table-cell>
</table-row>
<table-row>
  <table-cell>
    <block>Third</block>
  </table-cell>
</table-row>
</table-body>
</table>