可以用来输出自己的最简单的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="/">
...
输出应该是一样的......
编辑(从海报上读到关于quines的东西......)
让我更难以提出这个要求......
是否存在只会输出任何输入文档的XSLT样式表。 (我的意思是输出,而不仅仅是内部代表它):'任何输入文档'当然会包括它自己......
答案 0 :(得分:2)
这种程序被称为“quine”,快速谷歌“XSLT quine”导致了这个链接:http://www2.informatik.hu-berlin.de/~obecker/XSLT/#quine
答案 1 :(得分:1)
我没有点击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>
答案 2 :(得分:1)
如果您正在寻找身份转换,维基百科有几个例子。