[Home] [By Thread] [By Date] [Recent Entries]
Hi Folks,
This is a programming language:
<Book>
<Title>____</Title>
<Author>____</Author>
</Book>
Don't let the angle brackets and element names deceive you, it is a programming language.
When I execute this program
<Book>
<Title>Six Great Ideas</Title>
<Author>Mortimer Adler</Author>
</Book>
I get this output
Six Great Ideas
Mortimer Adler
As with most programming languages, it is possible to write a program that loops forever. This program loops forever
<Book>
<Title>Six Great Ideas</Title>
<Author></Author>
</Book>
You probably figured out that in this programming language the semantics of the <Author> element is
1. interpret(Author[not(empty())]) --> Output: text
2. interpret(Author[empty()]) --> interpret(self::*)
Here is an interpreter for the programming language
---------------------------------------------------------------------
Book Language Interpreter
(interpreter is implemented in XSLT)
---------------------------------------------------------------------
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output method="text" />
<xsl:template match="text()">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="Author[. eq '']">
<xsl:apply-templates select="self::*"/>
</xsl:template>
</xsl:stylesheet>
Comments?
/Roger
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] |

Cart



