0

我尝试使用 XSLT 将 XML 结构转换为 FO 脚本。我对编号的标题有疑问。我有一个这样的 XML 结构:

<?xml version="1.0"?>
<document>
   <type1>
      <heading>Topic level1</heading>
      <paragraph>Text</paragraph>
   </type1>
   <type2>
      <heading>Topic level1</heading>
      <paragraph>Text</paragraph>
   </type2>
   <type1>
      <heading>Topic level1</heading>
      <type1>
         <heading>Topic level2</heading>
         <paragraph>Text</paragraph>
         </type1>
           <heading>Topic level3</heading>
           <paragraph>Text</paragraph>
         </type1>
      </type1>
   </type1>
...
</document>

原始的 XML 结构嵌套更深,元素更多。现在我有一个这样的模板:

<xsl:template match="type1/heading | type2/heading | type3/heading | type4/heading | 
 type5/heading | type6/heading | type7/heading">
   <fo:block font-weight="bold" font-size="13pt" space-after="5mm" id="{generate-
   Id()}">
      <xsl:number count="type1| type2| type3| type4| type5| type6 | type7"
       format="1.1" level="multiple"/>&#160;
      <xsl:apply-templates/>
   </fo:block>
</xsl:template>

输出基本没问题。但所有标题都有相同的样式参数。我想为不同的标题级别设置不同的样式。例如像这样:

1.主题级别1

文本

2. 主题级别1

文本

3. 主题级别1

文本

3.1 主题级别2

文本

3.1.1 主题级别3

文本

我怎样才能做到这一点?

4

1 回答 1

0

您可以通过计算结果中的点数<xsl:number>或 type1 | 的祖先数来确定当前标题的级别。类型 2 等

于 2014-08-22T23:06:32.573 回答