【发布时间】:2021-07-08 08:40:42
【问题描述】:
几年前,我在您的帮助下创建了一个发送和收取发票的程序。然后瑞士邮政改用二维码,在您的帮助下,我现在可以发送带有二维码的发票。它们使用与以前相同的 xml 程序兑现,但在已用于拒绝代码的同一标签中还有其他信息,我无法在 xmlt 中处理它。 使用的标签是 Document /BkToCstmrDbtCdtNtfctn/Ntfctn/Ntry/NtryDtls/RmtInf/Strd/AddtlRmtInf
这是我收到的没有二维码的 xml:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04 camt.054.001.04.xsd">
<BkToCstmrDbtCdtNtfctn>
<GrpHdr>...</GrpHdr>
<Ntfctn>
...
<Ntry>
<NtryRef>010993990</NtryRef>
<Amt Ccy="CHF">9069.65</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
...
<Chrgs>
<TtlChrgsAndTaxAmt Ccy="CHF">7.00</TtlChrgsAndTaxAmt>
...
</Chrgs>
<NtryDtls>
<Btch>
<NbOfTxs>12</NbOfTxs>
</Btch>
<TxDtls>
...
<Amt Ccy="CHF">530.75</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
...
<RmtInf>
<Strd>
<CdtrRefInf>
...
<Ref>329501419000000000000791737</Ref>
</CdtrRefInf>
<AddtlRmtInf>?REJECT?0</AddtlRmtInf>
</Strd>
</RmtInf>
<RltdDts>
<AccptncDtTm>2019-07-02T20:00:00</AccptncDtTm>
</RltdDts>
</TxDtls>
<TxDtls>...</TxDtls>
...
</NtryDtls>
<AddtlNtryInf>CRÉDIT GROUPÉ BVR TRAITEMENT DU 02.07.2019 </AddtlNtryInf>
</Ntry>
</Ntfctn>
以及使用的 xmlt:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ld="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04"
exclude-result-prefixes="ld">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="ld:Document">
<xsl:copy>
<xsl:for-each select="ld:BkToCstmrDbtCdtNtfctn/ld:Ntfctn/ld:Ntry">
<xsl:for-each select="ld:NtryDtls">
<xsl:for-each select="ld:TxDtls">
<xsl:element name="Paiement">
<xsl:element name="MsgId">
<xsl:value-of select="../../../../ld:GrpHdr/ld:MsgId"/>
</xsl:element>
<xsl:element name="MsgDate">
<xsl:value-of select="../../../../ld:GrpHdr/ld:CreDtTm"/>
</xsl:element>
<xsl:element name="MsgPageNb">
<xsl:value-of select="../../../../ld:GrpHdr/ld:MsgPgntn/ld:PgNb"/>
</xsl:element>
<xsl:element name="MsgLastPage">
<xsl:value-of select="../../../../ld:GrpHdr/ld:MsgPgntn/ld:LastPgInd"/>
</xsl:element>
<xsl:element name="MsgType">
<xsl:value-of select="../../../ld:CpyDplctInd"/>
</xsl:element>
<xsl:element name="MsgOrigine">
<xsl:value-of select="../../../ld:RptgSrc/ld:Prtry"/>
</xsl:element>
<xsl:element name="ValableDepuis">
<xsl:value-of select="../../../ld:FrToDt/ld:FrDtTm"/>
</xsl:element>
<xsl:element name="ValableJusque">
<xsl:value-of select="../../../ld:FrToDt/ld:ToDtTm"/>
</xsl:element>
<xsl:element name="IbanCpteCredit">
<xsl:value-of select="../../../ld:Acct/ld:Id/ld:IBAN"/>
</xsl:element>
<xsl:element name="OwnerCpteCredit">
<xsl:value-of select="../../../ld:Acct/ld:Ownr/ld:Nm"/>
</xsl:element>
<xsl:element name="ParticipantBVR">
<xsl:value-of select="../../ld:NtryRef"/>
</xsl:element>
<xsl:element name="MontantTotalGrPts">
<xsl:value-of select="../../ld:Amt"/>
</xsl:element>
<xsl:element name="TypeEcritureGrPts">
<xsl:value-of select="../../ld:CdtDbtInd"/>
</xsl:element>
<xsl:element name="EtatEcritureGrPts">
<xsl:value-of select="../../ld:Sts"/>
</xsl:element>
<xsl:element name="EcritureInverseeGrPts">
<xsl:value-of select="../../ld:RvslInd"/>
</xsl:element>
<xsl:element name="DateEcritureGrPts">
<xsl:value-of select="../../ld:BookgDt/ld:Dt"/>
</xsl:element>
<xsl:element name="DateValeurGrPts">
<xsl:value-of select="../../ld:ValDt/ld:Dt"/>
</xsl:element>
<xsl:element name="RefEcritureGrPts">
<xsl:value-of select="../../ld:AcctSvcrRef"/>
</xsl:element>
<xsl:element name="BTCDomainGrPts">
<xsl:value-of select="../../ld:BkTxCd/ld:Domn/ld:Cd"/>
</xsl:element>
<xsl:element name="BTCFamilyGrPts">
<xsl:value-of select="../../ld:BkTxCd/ld:Domn/ld:Fmly/ld:Cd"/>
</xsl:element>
<xsl:element name="BTCSubFamilyGrPts">
<xsl:value-of select="../../ld:BkTxCd/ld:Domn/ld:Fmly/ld:SubFmlyCd"/>
</xsl:element>
<xsl:element name="TaxesTtlesGrPts">
<xsl:value-of select="../../ld:Chrgs/ld:TtlChrgsAndTaxAmt"/>
</xsl:element>
<xsl:element name="InfoGrPts">
<xsl:value-of select="../../ld:AddtlNtryInf"/>
</xsl:element>
<xsl:element name="PaiementId">
<xsl:value-of select="ld:Refs/ld:AcctSvcrRef"/>
</xsl:element>
<xsl:element name="Reference">
<xsl:value-of select="ld:RmtInf/ld:Strd/ld:CdtrRefInf/ld:Ref"/>
</xsl:element>
<xsl:element name="MontantCcy">
<xsl:value-of select="ld:Amt/@Ccy"/>
</xsl:element>
<xsl:element name="Montant">
<xsl:value-of select="ld:Amt"/>
</xsl:element>
<xsl:element name="MontantCrediteCcy">
<xsl:value-of select="ld:AmtDtls/ld:TxAmt/ld:Amt/@Ccy"/>
</xsl:element>
<xsl:element name="MontantCredite">
<xsl:value-of select="ld:AmtDtls/ld:TxAmt/ld:Amt"/>
</xsl:element>
<xsl:element name="TaxeBV">
<xsl:value-of select="ld:Chrgs/ld:TtlChrgsAndTaxAmt"/>
</xsl:element>
<xsl:element name="NomDebiteur">
<xsl:value-of select="ld:RltdPties/ld:Dbtr/ld:Nm"/>
</xsl:element>
<xsl:element name="VilleDebiteur">
<xsl:value-of select="ld:RltdPties/ld:Dbtr/ld:PstlAdr/ld:TwnNm"/>
</xsl:element>
<xsl:element name="AdresseDebiteur">
<xsl:value-of select="ld:RltdPties/ld:Dbtr/ld:PstlAdr/ld:AdrLine"/>
</xsl:element>
<xsl:element name="codeRejet">
<xsl:value-of select="ld:RmtInf/ld:Strd/ld:AddtlRmtInf"/>
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:copy>
</xsl:template>
样式表>
这是我收到的带有二维码的 xml:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04 camt.054.001.04.xsd">
<BkToCstmrDbtCdtNtfctn>
<GrpHdr>...</GrpHdr>
<Ntfctn>
...
<Ntry>
<NtryRef>CH7830000001145978107</NtryRef>
<Amt Ccy="CHF">1.10</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
...
<NtryDtls>
<Btch><NbOfTxs>1</NbOfTxs></Btch>
<TxDtls>
<Refs>...</Refs>
<Amt Ccy="CHF">1.10</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
...
<RltdPties>
<Dbtr>...</Dbtr>
<DbtrAcct><Id><IBAN>CH30</IBAN></Id></DbtrAcct>
<UltmtDbtr>...</UltmtDbtr>
</RltdPties>
<RltdAgts><DbtrAgt><Nm>POSTFINANCE AG</Nm></DbtrAgt></RltdAgts>
<RmtInf>
<Strd>
<CdtrRefInf>
<Tp><CdOrPrtry><Prtry>QRR</Prtry></CdOrPrtry></Tp>
<Ref>329501419000000000050003414</Ref>
</CdtrRefInf>
<AddtlRmtInf>?REJECT?0</AddtlRmtInf>
<AddtlRmtInf>?ERROR?000</AddtlRmtInf>
<AddtlRmtInf>facture no 5000341 envoyée le 14.06 .2021 -</AddtlRmtInf>
</Strd>
</RmtInf>
<RltdDts><AccptncDtTm>2021-06-15T20:00:00</AccptncDtTm></RltdDts>
</TxDtls>
</NtryDtls>
<AddtlNtryInf>CRÉDIT GROUPÉ POUR COMPTE: CH78</AddtlNtryInf>
</Ntry>
</Ntfctn>
我需要“2021 年 6 月 14 日发送的 5000341 号发票”信息。我尝试使用“for each”循环,但第一行(拒绝代码)显示了 3 次。
你能帮帮我吗?
感谢您的留言。 这是预期的结果:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Paiement xmlns="">
<MsgId>20210615375204613904176</MsgId>
<MsgDate>2021-06-15T23:37:21</MsgDate>
<MsgPageNb>1</MsgPageNb>
<MsgLastPage>true</MsgLastPage>
<MsgType/>
<MsgOrigine>OTHR</MsgOrigine>
<ValableDepuis>2021-06-15T00:00:00</ValableDepuis>
<ValableJusque>2021-06-15T23:59:59</ValableJusque>
<IbanCpteCredit>CH3009000000145978107</IbanCpteCredit>
<OwnerCpteCredit>Fiduciaire Factoring Yenni Sàrl
Etagnières</OwnerCpteCredit>
<ParticipantBVR>CH7830000001145978107</ParticipantBVR>
<MontantTotalGrPts>1.10</MontantTotalGrPts>
<TypeEcritureGrPts>CRDT</TypeEcritureGrPts>
<EtatEcritureGrPts>BOOK</EtatEcritureGrPts>
<EcritureInverseeGrPts>false</EcritureInverseeGrPts>
<DateEcritureGrPts>2021-06-15</DateEcritureGrPts>
<DateValeurGrPts>2021-06-15</DateValeurGrPts>
<RefEcritureGrPts>1661200078041B6U</RefEcritureGrPts>
<BTCDomainGrPts>PMNT</BTCDomainGrPts>
<BTCFamilyGrPts>RCDT</BTCFamilyGrPts>
<BTCSubFamilyGrPts>VCOM</BTCSubFamilyGrPts>
<TaxesTtlesGrPts/>
<InfoGrPts>CRÉDIT GROUPÉ POUR COMPTE: CH7830000001145978107
TRAITEMENT DU 15.06.2021 PAQUET ID: 210615CH00000F3I</InfoGrPts>
<PaiementId>210614CH077N887Z</PaiementId>
<Reference>329501419000000000050003414</Reference>
<MontantCcy>CHF</MontantCcy>
<Montant>1.10</Montant>
<MontantCrediteCcy/>
<MontantCredite/>
<TaxeBV/>
<NomDebiteur>Fiduciaire Factoring Yenni</NomDebiteur>
<VilleDebiteur>Etagnières</VilleDebiteur>
<AdresseDebiteur/>
<codeRejet>?REJECT?0</codeReject>
<codeErreur>?ERROR?000</codeErreur>
<factureInfo>facture no 5000341 envoyée le 14.06 .2021 - </factureInfo>
我使用这个结果来填充一个 MS 访问表
【问题讨论】:
-
请编辑您的问题并添加您期望得到的确切结果。
-
你好迈克尔,我添加了我期望得到的结果。