将XML(带文档标题)转换为CSV

将XML(带文档标题)转换为CSV,xml,csv,xslt,Xml,Csv,Xslt,将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&g

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

021/ACSET/0021002/20170628/000002
2017-06-28:00:00
1.
真的
00210002
结算会员
预期O/p:

RptId、DtTm、PgNb、LastPgInd、Id、Issr 021/ACSET/0021002/20170628/0000022017-06-28500:00:00,1,正确,0021002,结算成员

在这里,如果我删除XML文件中的文档头,我将获得正确的o/p,但根据我的要求,文档头应该在那里,我无法删除它。请帮帮我。。。。谢谢。

这样试试:

XSLT1.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>

RptId、DtTm、PgNb、LastPgInd、Id、Issr和#10;
,
,
,
,
,



1。见:2。如果您无法使其工作,请发布您当前的XSLT。。它对我不起作用,请看我在belowIt中的XSLT。它不起作用,因为你没有实现给定的建议。实现给定的建议,但我想我必须做更多,但不确定我应该在哪里。。。请参见下面的内容,因为您的引用缺少前缀,并且路径错误。