J'utilise SSIS sur SQL Server 2005, VS 2005 SP2.Transformation SSIS XSLT
J'ai créé un XSLT pour convertir le format XML au format CSV. Quand je lance ceci via XML Spy ça fonctionne bien. J'ai configuré un package XML Task within et SSIS pour transformer le fichier XML. Malheureusement, lorsque SSIS effectue la transformation, il n'inclut pas le CR/LF à la fin de chaque enregistrement - il me reste une ligne sigle.
J'ai passé le XSLT ci-dessous. Quelqu'un pourrait-il me dire pourquoi SSIS ignore le ?
J'ai également collé un exemple de document XML.
Merci beaucoup,
Rob.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="utf-8"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/pptxn">
<xsl:variable name="fileName" select="/pptxn/file_name"/>
<xsl:variable name="sendingOrg" select="/pptxn/sending_org"/>
<xsl:variable name="dateCreated" select="/pptxn/date_created"/>
<xsl:variable name="timeCreated" select="/pptxn/time_created"/>
<xsl:variable name="sequenceNumber" select="/pptxn/sequence_number"/>
<xsl:text>FileName,SendingOrg,DateCreated,TimeCreated,SequenceNumber,PartnerNumber,PartnerOutletRef,CardAccountNumber,TransactionDate,TransactionTime,Spend,PartnerPoints,PartnerReference,PartnerPosId</xsl:text>
<xsl:text>
</xsl:text>
<xsl:for-each select="transaction">
<xsl:value-of select="$fileName"/>,<xsl:value-of select="$sendingOrg"/>,<xsl:value-of select="$dateCreated"/>,<xsl:value-of select="$timeCreated"/>,<xsl:value-of select="$sequenceNumber"/>,<xsl:value-of select="partner_number"/>,<xsl:value-of select="partner_outlet_ref"/>,<xsl:value-of select="card_account_number"/>,<xsl:value-of select="transaction_date"/>,<xsl:value-of select="transaction_time"/>,<xsl:value-of select="spend"/>,<xsl:value-of select="partner_points"/>,<xsl:value-of select="partner_reference"/>,<xsl:value-of select="partner_pos_id"/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Maintenant XML ->
<?xml version="1.0" encoding="UTF-8"?>
<pptxn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Y:\PartnerPoints\XML\PointsPartnerRequest.xsd">
<file_name>PPRequest.xml</file_name>
<sending_org>1</sending_org>
<date_created>20091121</date_created>
<time_created>153421</time_created>
<sequence_number>2</sequence_number>
<transaction_count>3</transaction_count>
<transaction>
<partner_number>1</partner_number>
<partner_outlet_ref>outlet ref 1</partner_outlet_ref>
<card_account_number>1</card_account_number>
<transaction_date>20091221</transaction_date>
<transaction_time>091256</transaction_time>
<spend>21.34</spend>
<partner_points>40</partner_points>
<partner_reference>shop x1</partner_reference>
<partner_pos_id>pos id 1</partner_pos_id>
</transaction>
<transaction>
<partner_number>2</partner_number>
<partner_outlet_ref>outlet ref 2</partner_outlet_ref>
<card_account_number>2</card_account_number>
<transaction_date>20091222</transaction_date>
<transaction_time>091257</transaction_time>
<spend>21.35</spend>
<partner_points>41</partner_points>
<partner_reference>shop x2</partner_reference>
<partner_pos_id>pos id 2</partner_pos_id>
</transaction>
<transaction>
<partner_number>3</partner_number>
<partner_outlet_ref>outlet ref 3</partner_outlet_ref>
<card_account_number>3</card_account_number>
<transaction_date>20091223</transaction_date>
<transaction_time>091258</transaction_time>
<spend>21.36</spend>
<partner_points>42</partner_points>
<partner_reference>shop x3</partner_reference>
<partner_pos_id>pos id 3</partner_pos_id>
</transaction>
</pptxn>
Je peux confirmer que votre suggestion résout un problème similaire à celui que j'avais et, en fait, ce comportement étrange existe toujours dans SSIS 2012! – 3Sphere