0
我已經編寫了以下xml代碼,這些代碼將作爲輸入並轉到將處理xml代碼以生成xml輸出的xslt腳本:需要執行XML輸入和XSL的輸出以創建XML輸出
XML輸入
<TAB512>
<WA>f1,f2</WA>
</TAB512>
<TAB512>
<WA>df1,df2</WA>
</TAB512>
</DATA>
<FIELDS>
<Filed>
<FIELDNAME>Field1</FIELDNAME>
</Filed>
<Filed>
<FIELDNAME>Field2</FIELDNAME>
</Filed>
</FIELDS>
</Response>
在
<FIELDNAME>
在xsl腳本的第一個元素將格式化輸入XML生成XML輸出在
<WA>
第一元件
<TAB512>
<WA>f1,f2</WA>
</TAB512>
我的意思是之前的字段2
XSL腳本
<xsl:template name="WriteRecordNodeTemplate">
<xsl:param name="Field" />
<xsl:param name="WA" />
<Response>
<xsl:call-template name="StringSplit">
<xsl:with-param name="fi" select="$Field" />
<xsl:with-param name="w" select="$WA" />
</xsl:call-template>
</Response>
</xsl:template>
<xsl:template name="StringSplit">
<xsl:param name="fi" />
<xsl:param name="w" />
<xsl:choose>
<xsl:when test="contains($w, ',')">
<Record>
<xsl:value-of select="$fi" ><xsl:value-of select="substring-before($w, ',')" /></xsl:value-of select="$fi" >
</Record>
<xsl:call-template name="StringSplit">
<xsl:param name="fi" />
<xsl:with-param name="w" select="substring-after($w, ',')" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<!-- if there is no more delimiter values, print out
the whole string -->
<Record>
<xsl:value-of select="$fi" ><xsl:value-of select="$w" /></xsl:value-of select="$fi" >
</Record>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
最後
第一要素 '' 這將是Field 1和之後的元素 ''需要XML如下輸出:
<TableName>
<Record>
<Field1>f1</Field1>
<Field2>f2</Field2>
</Record>
<Record>
<Field1>df1</Field1>
<Field2>df2</Field2>
</Record>
</TableName>
請解釋所需轉換的邏輯 - 特別是。字段名稱和數據之間的關係以及決定輸出應具有多少記錄的因素。爲每個領域提供不同的數據也有助於使示例更加清晰。 - 請說明您是否可以使用XSLT 2.0。 –
Data中的第一個WA元素=第一個字段名稱 –
我需要在biztalk腳本中使用functoid使用內嵌xslt調用模板 –