我通过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页面。
答案 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>