|
next
|
 Subject: Word count Author: Kaan O Date: 16 Feb 2006 07:26 AM
|
Hello, I am trying to use a word count script so when I display my news items it only displays the first 5 words.
I've found an example to try and modify to work with mine but I'm really stuck. Haven't got a clue where to start. If someone could give me some detailed help it would be really appreciated :D
/////////////////////////////////////////////////////////////
This is my orginal code so far -
<?xml version="1.0" encoding="iso-8859-1"?><!-- DWXMLSource="http://feeds.directnews.org.uk/?e56bf4a0-bf37-4b2e-9dc3-45f400c4cbeb" -->
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
<!ENTITY copy "©">
<!ENTITY reg "®">
<!ENTITY trade "™">
<!ENTITY mdash "—">
<!ENTITY ldquo "“">
<!ENTITY rdquo "”">
<!ENTITY pound "£">
<!ENTITY yen "¥">
<!ENTITY euro "€">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1"/>
<xsl:param name="ItemsPerPage" select="2" />
<xsl:template match="/"><link href="../scripts/article10.css" rel="stylesheet" type="text/css" /><style type="text/css">
<xsl:comment>
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
.style1 {font-size: 11px; color: #333333; font-family: Arial, Helvetica, sans-serif;}
</xsl:comment>
</style>
<p>
<table width="100%" border="0" cellpadding="0" cellspacing="0" id="contents">
<tr>
<td width="50%" align="left" valign="top">
<xsl:for-each select="InfoStreamResults/Article[position() <= $ItemsPerPage]">
<xsl:sort select="Heading" order="ascending"/>
<table width="280" class="tableStandard">
<tr>
<td colspan="2" bgcolor="#DBE1F2" class="newsHeadLine"><xsl:value-of select="Heading"/><br /> <xsl:value-of select="Date"/> </td>
</tr>
<tr class="bodycopy">
<td width="83%"><xsl:value-of select="substring-before(Contents, ',')" disable-output-escaping="yes"/> ....</td>
</tr>
<tr class="bodycopy">
<td><a class="welcomebodycopy">
<xsl:attribute name="href"> <xsl:text>fullStory.asp?varID=</xsl:text> <xsl:value-of select="@ID" /> <xsl:text>&varRelated=</xsl:text> <xsl:value-of select="Categories/Category/@ID" /></xsl:attribute>
Read full story </a> <br />
<xsl:value-of select="translate(Heading, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/></td>
</tr>
</table>
<br />
</xsl:for-each> </td>
</tr>
<br />
</table>
</p>
</xsl:template>
</xsl:stylesheet>
/////////////////////////////////////////////////////////////
This is the example i've got off the net -
?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" />
<xsl:template match="/">
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Headlines</h1>
<xsl:apply-templates select="headlines/headline" />
</body>
</html>
</xsl:template>
<xsl:template match="headline">
<h2>
<xsl:call-template name="get-words">
<xsl:with-param name="text" select="." />
<xsl:with-param name="number-of-words" select="3" />
</xsl:call-template>
</h2>
</xsl:template>
<xsl:template name="get-words">
<xsl:param name="text" />
<xsl:param name="number-of-words" />
<xsl:param name="processed-words" select="''" />
<xsl:choose>
<xsl:when test="$number-of-words = 0">
<xsl:value-of select="$processed-words" />
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="get-words">
<xsl:with-param name="text"
select="substring-after($text, ' ')" />
<xsl:with-param name="number-of-words"
select="$number-of-words - 1" />
<xsl:with-param name="processed-words"
select="concat($processed-words, ' ', substring-before($text, ' '))" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Example input
<headlines>
<headline>Kibology for all. All for Kibology.</headline>
</headlines>
would be transformed as
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Example</title>
</head>
<body>
<h1>Headlines</h1>
<h2> Kibology for all.</h2>
</body>
</html>
Thanks Kaan.
|
|
|