如何计算我的XML文件的段落并使用XSLT在HTML文件中显示它们?

时间:2018-01-07 11:53:35

标签: html css xml xslt

基本上我有一个包含几段的文字,必须加以计算。然后段落号必须显示在段落的左侧。

我使用以下内容成功计算了所有段落:

<xsl:for-each select="//troonrede">
    <xsl:value-of select="count(paragraph)"/><br/>
</xsl:for-each>

但是,我不知道如何将这个实现到我的HTML输出中。抱歉,今天开始使用XSLT,我在其他地方找不到这个解决方案。

亲切的问候,

Thijmen。

编辑:XML示例

<?xml version="1.0" encoding="utf8"?>
<!DOCTYPE troonrede
  [ <!ENTITY euml "ë"> ]
>
<troonrede spreker="Koningin Beatrix">
    <hoofd>
        Leden van de <organisatie>Staten-Generaal</organisatie>
    </hoofd>
    <paragraph>
        Willen wij daadkrachtig het economisch herstel vorm kunnen geven, dan is stabiel bestuur gewenst. 
        Intensief wordt sinds de <organisatie> Tweede Kamer</organisatie>-verkiezingen van <datum>9 juni</datum> 
        gewerkt aan de totstandkoming van een nieuw kabinet. Lopende de kabinetsformatie past het huidige kabinet
        terughoudendheid bij het doen van beleidsvoorstellen voor het komende jaar. 
        </paragraph>
    <paragraph> 
        Lange tijd en wereldwijd zullen de gevolgen van de financieel-economische crisis voelbaar blijven. 
        Een ingrijpend pakket van ombuigingen is nu noodzakelijk om de positie van ons land ook op de lange 
        termijn te verbeteren. Maatregelen voor de jaren na <datum>2011</datum> zullen vanzelfsprekend door 
        een nieuw kabinet voorbereid moeten worden.
        </paragraph>
</troonrede>

1 个答案:

答案 0 :(得分:0)

您还没有真正解释要用于表示文档的HTML格式,但是如果要对段落进行编号,可以将它们转换为HTML有序列表ol,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">

  <xsl:output method="html" indent="yes" version="5" doctype-system="about:legacy-doctype"/>

  <xsl:template match="/">
    <html>
      <head>
        <title>Example</title>
      </head>
      <body>
         <xsl:apply-templates/>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="troonrede">
      <section>
          <h2>
              <xsl:apply-templates select="hoofd"/>
          </h2>
          <ol>
              <xsl:apply-templates select="paragraph"/>
          </ol>
      </section>
  </xsl:template>

  <xsl:template match="paragraph">
      <li>
          <xsl:apply-templates/>
      </li>
  </xsl:template>

</xsl:stylesheet>

http://xsltfiddle.liberty-development.net/nbUY4kk/2