示例案例:
<Sample>
<Date Year="2012" Month="9" Day="21"/>
<Time Hour="6" Minute="6" Second="6"/>
</Sample>
必需输出:
<Sample>
<Date>9/21/2012</Date>
<Time>6:6:6</Time>
</Sample>
答案 0 :(得分:2)
这可以通过使用额外模板扩展标准XSLT身份转换以匹配日期和时间元素,根据需要重新格式化来实现
例如,要匹配日期元素,年,月和日属性,您需要这样做。
如果您可以保证所有日期元素都具有所需的三个属性,则可以将模板匹配简化为
<xsl:template match="Date">
您可以为时间元素添加类似的模板。
这是完整的XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Date[@Year][@Month][@Day]">
<Date><xsl:value-of select="concat(@Month, '/', @Day, '/', @Year)" /></Date>
</xsl:template>
<xsl:template match="Time[@Hour][@Minute][@Second]">
<Time><xsl:value-of select="concat(@Hour, ':', @Minute, ':', @Second)" /></Time>
</xsl:template>
</xsl:stylesheet>
当应用于您的示例XML时,输出以下内容:
<Sample>
<Date>9/21/2012</Date>
<Time>6:6:6</Time>
</Sample>