比方说,我有一个空的XML文件,像这样:可能对动态生成的xml执行xsl转换吗?
<root></root>
而且我想一个XSL转换,像这样在添加到根元素:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<xsl:copy>
<xsl:element name="root">
<xsl:element name="label">Some text</xsl:element>
</xsl:element>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
转换XML文件给我:
<root>
<label>Some text</label>
</root>
但是,我想修改XSL文件,以便我可以转换运行时生成的XML。基本上,我希望XSL认为原始XML文件包含动态创建的XML,然后对其进行HTML转换。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8" omit-xml-declaration="yes" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<xsl:copy>
<xsl:element name="root">
<xsl:element name="label">Some text</xsl:element>
</xsl:element>
</xsl:copy>
</xsl:template>
<!-- This part is new -->
<xsl:template match="//label">
<b>
<xsl:value-of select="." />
</b>
</xsl:template>
</xsl:stylesheet>
在这种情况下,我的期望输出将是:<b>label</b>
。
是否可以在一个XSL文件中做到这一点?我是否错误地查看了这个问题?
感谢您的回答,Doug。这使我走上了正确的轨道,我能够想出一个解决我的真实问题的方法,详细地列出了我自己发布的答案。 – 2009-06-25 15:12:20