コメント内の要素のテキスト表現を生成する簡単な方法はありません。
これは、インライン拡張関数を使用した短いものです (C#):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:my="my:my" exclude-result-prefixes="msxsl my">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/*">
<xsl:comment>
<xsl:value-of select="my:stringize(someElement)"/>
</xsl:comment>
</xsl:template>
<msxsl:script language="c#" implements-prefix="my">
public string stringize(XPathNavigator doc)
{
return doc.OuterXml;
}
</msxsl:script>
</xsl:stylesheet>
この変換が (.NET XslCompiledTransform XSLT プロセッサを使用して) 次の XML ドキュメントに適用される場合:
<t>
<someElement>someValue</someElement>
</t>
必要な正しい結果が生成されます。
<!--<someElement>someValue</someElement>-->
純粋な XSLT で同じことを行うには、さまざまな方法があります。たとえば、XPath ビジュアライザーの XSLT コードを参照して、XML 文書を Html (12 年前に書いたオープン ソース製品であり、私はそうではありません) として見栄えよく表現しています。ここで何らかの方法で宣伝する)