<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>littleforest &#187; Michael Thomas</title>
	<atom:link href="http://www.littleforest.co.uk/author/michaellittleforestcouk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.littleforest.co.uk</link>
	<description>The littleforest Weblog</description>
	<lastBuildDate>Fri, 05 Nov 2010 08:01:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Read a Single XML File in Java</title>
		<link>http://www.littleforest.co.uk/articles/jave-read-a-single-xml-file/</link>
		<comments>http://www.littleforest.co.uk/articles/jave-read-a-single-xml-file/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 13:04:40 +0000</pubDate>
		<dc:creator>Michael Thomas</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[dcr]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSL]]></category>

		<guid isPermaLink="false">http://www.littleforest.co.uk/?p=188</guid>
		<description><![CDATA[The following should complement the supplied article for reading XML files (DCRs) based on a directory.  This will read the contents of a singe file

package com.littleforest.examples;
&#160;
import com.interwoven.livesite.dom4j.Dom4jUtils;
import com.interwoven.livesite.external.ParameterHash;
import com.interwoven.livesite.runtime.RequestContext;
import com.interwoven.livesite.external.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.*;
import org.dom4j.*;
import java.util.Properties; /* Added for proxy use */
import java.io.IOException;
import com.interwoven.livesite.file.FileDALIfc; /* Added to avoid use of CDATA write */
&#160;
public class [...]]]></description>
		<wfw:commentRss>http://www.littleforest.co.uk/articles/jave-read-a-single-xml-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Read List of XML Files from Directory Tree in Java</title>
		<link>http://www.littleforest.co.uk/articles/java-read-list-of-xml-files-present-directory-downwards/</link>
		<comments>http://www.littleforest.co.uk/articles/java-read-list-of-xml-files-present-directory-downwards/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 12:51:29 +0000</pubDate>
		<dc:creator>Michael Thomas</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.littleforest.co.uk/?p=187</guid>
		<description><![CDATA[This is a TeamSite 6.7.2/LiveSite 3.1 compliant mechanism that can be used to read all DCR files into a single XML files for further processing:

&#160;
package com.littleforest.examples;
&#160;
import com.interwoven.livesite.dom4j.Dom4jUtils;
import com.interwoven.livesite.external.ParameterHash;
import com.interwoven.livesite.runtime.RequestContext;
import com.interwoven.livesite.file.FileDALIfc;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.*;
import org.dom4j.*;
import java.util.Properties; /* Added for proxy use */
import com.interwoven.livesite.external.*;
import java.io.IOException;
&#160;
public class xmlFileListContents &#123;
&#160;
public Document fetchTree&#40;RequestContext context&#41;
&#123;
//look in ALL directories
Document doc [...]]]></description>
		<wfw:commentRss>http://www.littleforest.co.uk/articles/java-read-list-of-xml-files-present-directory-downwards/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XSL:Sort by Date, Organise by Type</title>
		<link>http://www.littleforest.co.uk/articles/xsl-sort-by-date-organise-by-type/</link>
		<comments>http://www.littleforest.co.uk/articles/xsl-sort-by-date-organise-by-type/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 12:29:07 +0000</pubDate>
		<dc:creator>Michael Thomas</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[LiveSite]]></category>
		<category><![CDATA[XSL]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.littleforest.co.uk/?p=186</guid>
		<description><![CDATA[In this example, we have a collection of material which we want to make available to users: whitepapers, articles, tips etc.  We want to group these by material and show the relevant subheading when this changes, but avoid redisplaying the heading if it remains the same, say:
Whitepaper
&#8230;
&#8230;
Article
&#8230;
&#8230;
As per other examples, the key to doing this [...]]]></description>
		<wfw:commentRss>http://www.littleforest.co.uk/articles/xsl-sort-by-date-organise-by-type/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XSL:Sort  By Date, Limit Returned Results</title>
		<link>http://www.littleforest.co.uk/articles/xsl-basic-sort-by-date-restrict-results/</link>
		<comments>http://www.littleforest.co.uk/articles/xsl-basic-sort-by-date-restrict-results/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 11:27:04 +0000</pubDate>
		<dc:creator>Michael Thomas</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[XSL]]></category>
		<category><![CDATA[LiveSite]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.littleforest.co.uk/?p=185</guid>
		<description><![CDATA[In an accompanying article, a simple method to sort by date was introduced.
Normally it is desirable to limit the number of results shown.
There are various complex ways of doing this posted on other sites, the fundamental problem being that &#60;xsl:variable&#62; works as a constant in practice, i.e set only once.
Trying to implement a counter as [...]]]></description>
		<wfw:commentRss>http://www.littleforest.co.uk/articles/xsl-basic-sort-by-date-restrict-results/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XSL:Sort By Date</title>
		<link>http://www.littleforest.co.uk/articles/xsl-basic-sort-by-date/</link>
		<comments>http://www.littleforest.co.uk/articles/xsl-basic-sort-by-date/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 11:06:03 +0000</pubDate>
		<dc:creator>Michael Thomas</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[LiveSite]]></category>
		<category><![CDATA[XSL]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[xsl:sort]]></category>

		<guid isPermaLink="false">http://www.littleforest.co.uk/?p=184</guid>
		<description><![CDATA[The following  should do the work

&#60;xsl:apply-templates select=&#34;[some repeating datum]&#34;&#62;
&#60;xsl:sort order=&#34;descending&#34; select=&#34;substring(//somedate,7,4)&#34;&#62; &#60;!-- year--&#62;
&#60;xsl:sort order=&#34;descending&#34; select=&#34;substring(//somedate,4,2)&#34;&#62; &#60;!-- month--&#62;
&#60;xsl:sort order=&#34;descending&#34; select=&#34;substring(//somedate,1,2)&#34;&#62; &#60;!-- day--&#62;
&#60;/xsl:apply-templates&#62;

This assumes the date is in the form dd/mm/yyyy: the seperators could be different as they are ignored anyway based on the substring.
The important thing to realise here is that the &#60;xsl:sort&#62; functions do not [...]]]></description>
		<wfw:commentRss>http://www.littleforest.co.uk/articles/xsl-basic-sort-by-date/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XSL Extract File Suffix, Convert to Uppercase, Display</title>
		<link>http://www.littleforest.co.uk/xsl/xslt-extract-file-suffix-convert-to-uppercase-display/</link>
		<comments>http://www.littleforest.co.uk/xsl/xslt-extract-file-suffix-convert-to-uppercase-display/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 10:51:12 +0000</pubDate>
		<dc:creator>Michael Thomas</dc:creator>
				<category><![CDATA[Magic One Liners]]></category>
		<category><![CDATA[XSL]]></category>
		<category><![CDATA[LiveSite]]></category>
		<category><![CDATA[substring]]></category>
		<category><![CDATA[touppercase]]></category>
		<category><![CDATA[translate]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.littleforest.co.uk/?p=183</guid>
		<description><![CDATA[
&#60;xsl:value-of
select=&#34;translate(substring-after(/Properties/Data/Datum[@Name='filename'],'.'),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')&#34;/&#62;

]]></description>
		<wfw:commentRss>http://www.littleforest.co.uk/xsl/xslt-extract-file-suffix-convert-to-uppercase-display/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LiveSite XSL Reference II</title>
		<link>http://www.littleforest.co.uk/livesite/livesite-xsl-reference-ii/</link>
		<comments>http://www.littleforest.co.uk/livesite/livesite-xsl-reference-ii/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 21:30:32 +0000</pubDate>
		<dc:creator>Michael Thomas</dc:creator>
				<category><![CDATA[LiveSite]]></category>
		<category><![CDATA[XSL]]></category>
		<category><![CDATA[Michael Thomas]]></category>

		<guid isPermaLink="false">http://www.littleforest.co.uk/?p=135</guid>
		<description><![CDATA[Nested Quotations with XSL
It is not unusual to come across a situation where nested quotations fail (are exceeded) in an apperance XSL document.
Say I want to tie a Javascript function to an input control, but I want to pass the value of a datum-type as an argument to the funtion.
Therefore I want to describe an [...]]]></description>
		<wfw:commentRss>http://www.littleforest.co.uk/livesite/livesite-xsl-reference-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

