XSLT不会显示已转换的内容

时间:2017-01-27 15:19:18

标签: xml xslt transformation

我通过XSLT学习。 我在我的XML文件中有这个:

  <corpus>

    <article>

    <header>
      <copyright> Copyright © contrapress media GmbH </copyright>
      <identifier> T990226.149 TAZ Nr. 5772 </identifier>
      <page> 15 </page>
      <date> 26.02.1999 </date>
      <length> 298 Zeilen </length>
      <texttype> Interview </texttype>
      <author> Maximilian Dax </author>
    </header>
    <body>
      <headings>
        <title>
          <token lemma="@quot;" wclass="$(" type="open"> " </token>
          <token wclass="PDS" lemma="d"> Das </token>
          <token wclass="VVFIN" lemma="nennen"> nenne </token>
          <token wclass="PPER" lemma="ich"> ich </token>
          <token wclass="NN" lemma="Selbstreferenz"> Selbstreferenz </token>
          <token wclass="$." lemma="!"> ! </token>
          <token lemma="@quot;" wclass="$(" type="close"> " </token>
        </title>
    </headings>
    </body>
    </article>
  </corpus>

我试图使用XSLT在

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">

<xsl:template match="/corpus">
    <xsl:apply-templates select="/corpus"></xsl:apply-templates>
</xsl:template>

<xsl:template match="//article[1]/body/headings/title//token">
    <html>
        <head>TextvomTab</head>
        <body>
            <h2><xsl:value-of select="."/></h2>
        </body>
    </html>
</xsl:template>

</xsl:stylesheet>

这似乎不起作用。每当我按下&#34;转换&#34;关键的氧气我得到的是一个空白的HTML页面。

1 个答案:

答案 0 :(得分:0)

当你这样做时:

<xsl:template match="/corpus">
    <xsl:apply-templates select="/corpus"></xsl:apply-templates>
</xsl:template>

您正在将XSLT处理器发送到无限循环中,一遍又一遍地应用相同的模板。

你想做的事:

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

<xsl:template match="/corpus">
     <html>
        <head>
            <title>TextvomTab</title>
        </head>
        <body>
            <h2>
                <xsl:apply-templates select="article[1]/body/headings/title/token"/>
            </h2>
        </body>
    </html>
</xsl:template>

</xsl:stylesheet>

会产生以下结果:

<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>TextvomTab</title>
   </head>
   <body>
      <h2> "  Das  nenne  ich  Selbstreferenz  !  " </h2>
   </body>
</html>