2017-07-12 100 views
-1

將XML(帶有文檔頭文件)轉換爲CSV - 如果我刪除XML文件中的文檔頭文件,能夠獲得預期的csv輸出,但是如果我不刪除文檔頭文件XML文件沒有得到預期的csv輸出。這裏是我的XML將XML(帶有文檔頭文件)轉換爲CSV

<?xml version="1.0" encoding="UTF-8"?> 
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:secl.010.001.03"> 
    <SttlmOblgtnRpt> 
    <RptParams> 
     <RptId>021/ACSET/00210002/20170628/000002</RptId> 
     <RptDtAndTm> 
     <DtTm>2017-06-28T00:00:00</DtTm> 
     </RptDtAndTm> 
    </RptParams> 
    <Pgntn> 
     <PgNb>1</PgNb> 
     <LastPgInd>true</LastPgInd> 
    </Pgntn> 
    <ClrMmb> 
     <PrtryId> 
     <Id>00210002</Id> 
     <Issr>SETTLING MEMBER</Issr> 
     </PrtryId> 
    </ClrMmb> 
    <RptDtls> 
    </RptDtls> 
    </SttlmOblgtnRpt> 
</Document> 

預期的O/P:

RptId,DTTM,PgNb,LastPgInd,ID,ISSR 021/ACSET/00210002/20170628/000002,2017-06-28T00:00: 00,1,true,00210002,SETTLING MEMBER

這裏如果我刪除XML文件中的文檔頭部,得到正確的O/P,但根據我的要求文檔頭應該在那裏,我不能刪除它。請幫助我....謝謝。

+2

** 1 **見:https://stackoverflow.com/questions/34758492/xslt-transform-doesnt-work -until-i-remove-root-node/34762628#34762628 ** 2。**如果您無法使其工作,請發佈當前的XSLT。 –

+0

嗨邁克爾..它不適合我請在下面看看我的XSLT – Mahesh

+0

它不工作,因爲你沒有實現給定的建議。 –

回答

0

試試這樣說:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:iso="urn:iso:std:iso:20022:tech:xsd:secl.010.001.03" 
exclude-result-prefixes="iso"> 
<xsl:output method="text" encoding="UTF-8" /> 

<xsl:template match="/iso:Document"> 
    <!-- header --> 
    <xsl:text>RptId,DtTm,PgNb,LastPgInd,Id,Issr&#10;</xsl:text> 
    <xsl:for-each select="iso:SttlmOblgtnRpt"> 
     <xsl:value-of select="iso:RptParams/iso:RptId" /> 
     <xsl:text>,</xsl:text> 
     <xsl:value-of select="iso:RptParams/iso:RptDtAndTm/iso:DtTm" /> 
     <xsl:text>,</xsl:text> 
     <xsl:value-of select="iso:Pgntn/iso:PgNb" /> 
     <xsl:text>,</xsl:text> 
     <xsl:value-of select="iso:Pgntn/iso:LastPgInd" /> 
     <xsl:text>,</xsl:text> 
     <xsl:value-of select="iso:ClrMmb/iso:PrtryId/iso:Id" /> 
     <xsl:text>,</xsl:text> 
     <xsl:value-of select="iso:ClrMmb/iso:PrtryId/iso:Issr" /> 
     <xsl:text>&#10;</xsl:text> 
    </xsl:for-each> 
</xsl:template> 

</xsl:stylesheet> 
+0

非常感謝邁克爾....對我來說工作得很好.... :) – Mahesh