最简单的XSLT样式表,其输出为XSLT样式表

  • 本文关键字:样式 XSLT 输出 最简单 xslt self
  • 更新时间 :
  • 英文 :


可用于输出自身的最简单的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

最新更新