可用于输出自身的最简单的XSLT(1.0)样式表是什么?
我已经开始了(还没走多远…)self.xml
是样式表(和输入文档)的名称:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="self.xml"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
...
输出应该是一样的....
编辑(在阅读了海报上的队列后…)
让我让这个请求更难…
是否存在只输出任何输入文档的XSLT样式表?(我指的是输出,而不仅仅是内部表示):'任何输入文档'当然包括自己…
这种程序被称为"quine ",快速Google一下"XSLT quine"就会得到这个链接:http://www2.informatik.hu-berlin.de/~obecker/XSLT/#quine
我还没有点击Oliver Becker的链接,但是我首先想到的是这个:
XSLT 1.0:
<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:copy-of select="document('')"/>
</xsl:template>
</xsl:stylesheet>
当应用于任何XML文档(未使用)时,结果与上面的代码完全相同:
<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:copy-of select="document('')" />
</xsl:template>
</xsl:stylesheet>
XSLT 2.0 :
<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:copy-of select="unparsed-text(static-base-uri())"/>
</xsl:template>
</xsl:stylesheet>
如果你正在寻找恒等变换,维基百科有一些例子。
http://en.wikipedia.org/wiki/Identity_transform