XML从SQL查询生成

时间:2016-05-10 19:16:02

标签: xml xslt

我有输出的SQL查询: 1. @now_data - 是日期和时间 2. @cbank - 列出od银行

我创建了XSL:



<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method = "text" omit-xml-declaration="yes"/>
<xsl:template match="/">
	<xsl:for-each select="ROOT">
		<xsl:apply-templates select="RECORDSET1"/>
	</xsl:for-each>
</xsl:template>
<xsl:template match="RECORDSET1">
	<xsl:apply-templates select="RECORD" mode="r1"/>
</xsl:template>

<xsl:template match="RECORDSET1">
<!-- Part 1 start-->
			<xsl:text>&#60;?xml version="1.0" encoding="utf-8"?&#62;</xsl:text>
			<xsl:value-of select="'&#xA;'" />
			<xsl:text>&#60;Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xsi="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"&#62;</xsl:text>
			<xsl:value-of select="'&#xA;'" />
<!-- Part 1 end-->		
			
			<!-- Part 2 start-->
			<xsl:text>&#60;CreDtTm&#62;</xsl:text>
			<xsl:value-of select="@now_data"/>
			<xsl:text>&#60;/CreDtTm&#62;</xsl:text><xsl:value-of select="'&#xA;'" />
			<!-- Part 2  end-->
		<!-- Part 4 start-->
		<xsl:apply-templates select="RECORD" mode="r1"/>
			<xsl:text>&#60;/CstmrCdtTrfInitn&#62;</xsl:text><xsl:value-of select="'&#xA;'" />
			<xsl:text>&#60;/Document&#62;</xsl:text>
		</xsl:template>
		<!-- Part 4  end-->
<xsl:template match="RECORD" mode="r1">
<!-- Part 3  start-->
						<xsl:text>&#60;ClrSysMmbId&#62;</xsl:text><xsl:value-of select="'&#xA;'" />
								<xsl:text>&#60;MmbId&#62;</xsl:text><xsl:value-of select="@cbank"/><xsl:text>&#60;/MmbId&#62;</xsl:text><xsl:value-of select="'&#xA;'" />
						<xsl:text>&#60;/ClrSysMmbId&#62;</xsl:text><xsl:value-of select="'&#xA;'" />
		<!-- Part 3  end-->
</xsl:template>
</xsl:stylesheet>
&#13;
&#13;
&#13;

输出应该是:

&#13;
&#13;
<?xml version="1.0" encoding="utf-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xsi="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
<CreDtTm></CreDtTm>
<ClrSysMmbId>
<MmbId>10501445</MmbId>
</ClrSysMmbId>
<ClrSysMmbId>
<MmbId>10501445</MmbId>
</ClrSysMmbId>
<ClrSysMmbId>
<MmbId>12402089</MmbId>
</ClrSysMmbId>
</CstmrCdtTrfInitn>
</Document>
&#13;
&#13;
&#13;

部分银行名称工作正常,但我遇到CreDtTm问题 - 是空的。当我把这个部分放在循环中时(第3部分),CreDtTm有日期并正常工作。

我应该更改日期?

0 个答案:

没有答案