2017-07-12 2 views
-1

XML (mit Dokumentkopf) in CSV konvertieren - Wenn ich den Dokumentkopf in XML-Datei entferne, kann ich die erwartete csv-Ausgabe erhalten, aber wenn ich den Dokumentkopf nicht entferne Die XML-Datei erhält nicht die erwartete CSV-Ausgabe. Hier ist meine XMLXML (mit Dokumentkopf) in CSV konvertieren

<?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> 

Erwartete O/P:

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

Hier Wenn ich den Dokument-Header in der XML-Datei entfernen, bekomme ich die richtige o/p aber nach meiner Anforderung sollte der Dokumenten-Header da sein, ich kann ihn nicht entfernen. Bitte hilf mir .... Danke.

+2

** 1 ** Siehe: https://stackoverflow.com/questions/34758492/xslt-transform-doesnt-work -until-i-remove-root-node/34762628 # 34762628 ** 2. ** Wenn du es nicht schaffen kannst, poste deine aktuelle XSLT. –

+0

Hallo Michael .. Es funktioniert nicht für mich bitte schauen Sie sich meine XSLT in unter – Mahesh

+0

Es funktioniert nicht, weil Sie den gegebenen Ratschlag nicht implementiert haben. –

Antwort

0

es auf diese Weise versuchen.

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

Danke Alot Michael .... es funktioniert gut für mich .... :) – Mahesh