Announcement

Collapse
No announcement yet.

xmlns Pfad

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • No_Idea
    started a topic xmlns Pfad

    xmlns Pfad

    Liebe Community

    Ich habe überhaupt keine Programmierkenntnisse. Habe es aber geschafft, ein im Internet gefundenes XSLT-File so zu modifizieren, dass ich damit meine gewünschten Variablen einer xml-Datei auslesen kann. Habe verstanden, dass ich unter <METADATA> meine gewünschten Variablen im vorgegebenen Muster hinzufügen kann, und unter <RESULTSET> die entsprechenden Pfade angeben muss. Funktioniert wunderbar! Nur die Variable «xmlns» im obersten Knoten «Document» schaffe ich auch nach langem Tüfteln nicht auszulesen.

    Wer kann mir sagen, was in der letzten Zeile unter <RESULTSET> stehen muss, damit ich für die Variable «xmlns» das folgende Ergebnis erhalte: urn:iso:std:iso:20022:tech:xsd:camt.054.001.04

    So sieht der Anfang der xml-Datei aus:
    Code:
    <Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04">
        <BkToCstmrDbtCdtNtfctn>
            <GrpHdr>
                <MsgId>2021092700188143</MsgId>
                <CreDtTm>2021-09-27T09:27:34</CreDtTm>
                <MsgPgntn>
                    <PgNb>1</PgNb>
                    <LastPgInd>true</LastPgInd>
                </MsgPgntn>
            </GrpHdr>
            <Ntfctn>
                <Id>2021092788126144</Id>
                <ElctrncSeqNb>2</ElctrncSeqNb>
                <CreDtTm>2021-09-27T09:27:34</CreDtTm>
                <FrToDt>
                    <FrDtTm>2021-06-28T00:00:00</FrDtTm>
                    <ToDtTm>2021-09-26T23:59:59</ToDtTm>
                </FrToDt>


    Und so das modifizierte XSLT-File:
    Code:
    <?xml version='1.0' encoding='UTF-8'?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:ns0="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04"
                    version="1.0">
    <!-- XSLT-stylesheet for FileMaker Pro and CAMT.054.xml-import. 
         Katta Informatik GmbH, M. Liedtke, E. Fuellemann, Basel, [email protected] 
         20.03.2017
    -->
      <xsl:template match="/ns0:Document">
        <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
            <ERRORCODE>0</ERRORCODE>
            <PRODUCT BUILD="" NAME="" VERSION="" />
            <DATABASE DATEFORMAT="" LAYOUT="" NAME="" RECORDS="" TIMEFORMAT="hh:mm:ss" />
            <METADATA>
                <FIELD EMPTYOK="YES" NAME="MsgId" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" NAME="CreDtTm" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" NAME="PgNb" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" NAME="LastPgInd" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" NAME="FrDtTm" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" NAME="ToDtTm" TYPE="TEXT"/>
                <FIELD EMPTYOK="YES" NAME="xmlns" TYPE="TEXT"/>
            </METADATA>
    
            <RESULTSET>
                <xsl:for-each select="ns0:BkToCstmrDbtCdtNtfctn">
            <ROW>
                <COL><DATA><xsl:value-of select="ns0:GrpHdr/ns0:MsgId" /></DATA></COL>
                <COL><DATA><xsl:value-of select="ns0:GrpHdr/ns0:CreDtTm" /></DATA></COL>
                <COL><DATA><xsl:value-of select="ns0:GrpHdr/ns0:MsgPgntn/ns0:PgNb" /></DATA></COL>
                <COL><DATA><xsl:value-of select="ns0:GrpHdr/ns0:MsgPgntn/ns0:LastPgInd" /></DATA></COL>
                <COL><DATA><xsl:value-of select="ns0:Ntfctn/ns0:FrToDt/ns0:FrDtTm" /></DATA></COL>
                <COL><DATA><xsl:value-of select="ns0:Ntfctn/ns0:FrToDt/ns0:ToDtTm" /></DATA></COL>
                <COL><DATA><xsl:value-of select="../ns0:Document/@xmlns" /></DATA></COL>
            </ROW>
                </xsl:for-each>
            </RESULTSET>
        </FMPXMLRESULT>
      </xsl:template>
    </xsl:stylesheet>


    Herzlichen Dank für eure Hilfe. Ich weiss jede Antwort zu schätzen. Rudolf

  • No_Idea
    replied
    Ganz herzlichen Dank, Martin! Damit funktioniert's. (Den Wert möchte ich zur Prüfung, ob die xml-Datei wirklich eine camt.054-Datei ist, auslesen... Deshalb.) Danke für deine Zeit und beste Grüsse, Rudolf

    Leave a comment:


  • Martin Honnen
    replied
    Der Wert ist doch fest vorgegeben und Teil des XSLT mit
    xmlns:ns0="urn:iso:std:iso:20022:tech:xsd:camt.054 .001.04" , aber wenn du diesen auslesen willst, dann per
    Code:
    <xsl:value-of select="namespace-uri()"/>

    Leave a comment:

Working...
X