将XML(包含文档标题)转换为CSV - 如果我删除XML文件中的文档标题,则能够获得预期的csv输出,但如果我不删除XML文件中的文档标题,则无法获得预期的结果csv输出。这是我的XML
<?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但是根据我的要求文档标题应该在那里我无法删除它。请帮帮我....谢谢。
答案 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 </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> </xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>