Announcement

Collapse
No announcement yet.

id= aus xml mit xslt auslesen?

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

  • id= aus xml mit xslt auslesen?

    Hallo in die Runde, meine Suche hat mich bisher nicht weitergebracht, deshalb hier die Frage:

    Ich habe folgenden Code im XML:

    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <data>
    <index id="Rechnungsnummer">20082007</index>
    <index id="Datum">20082007</index>
    <index id="Zeit">0830</index>
    <index id="Benutzer" />
    <index id="Seiten">3</index>
    <index id="Pfad">\\fntklex02\DSADaten\JETWorkplace\Import \Dokumente\Eingangsrechnungen-Scan\In</index>
    </data>

    Diese Werte möchte ich mit einem xslt auslesen.

    Ich hatte versucht ein vorhandenes Dokument anzupassen. Die Werte müssen so wie in diesem xslt übergeben werden.

    Den Kopfteil habe ich weggelassen:
    <xslutput method="xml" encoding="UTF-8" indent="yes"/>
    <xsl:template match="//data">
    <InvoiceScan>
    <xsl:attribute name="xsi:schemaLocation">http://www.datasystems.at/schemas/JE...es/InvoiceScan R:/JETWorkPlace/Organisation/DocumentServer/DocumentType_Schemas/DocumentType_InvoiceScan_V1.xsd</xsl:attribute>
    <InvoiceScan>
    <dsInvoiceScan:GeneralType>
    <xsl:value-of select= {Hier muss der 1. Wert aus der xml hin!} </dsInvoiceScan:GeneralType>

    </InvoiceScan>
    </InvoiceScan>

    </xsl:template>
    </xsl:stylesheet>

    Danke für die Hilfe

    LG
    Uwe

  • #2
    Zitat: "<xsl:value-of select= {Hier muss der 1. Wert aus der xml hin!}"

    Wenn das der Inhalt des id-Attributes des ersten index-Elements sein soll, dann so:

    <xsl:value-of select="index/@id"/>

    Mittels index[positionsnummer]/@id kann dann ggf. auf die anderen Werte zugegriffen werden, wobei zur Mehrfachauswertung auch andere Mechanismen wie xsl:apply-templates oder xsl:for-each geeignet sein könnten.

    Comment


    • #3
      alle Values auslesen

      Hallo Thomas, ja so ähnlich meine ich es.

      Ich benötige aber einen select auf jeden Wert (ID) in dem xml.

      <dsInvoiceScan:Rechnungsnummer>
      <xsl:value-of select= {Hier muss der 1. Wert aus der xml hin!} </dsInvoiceScan:Rechnungsnummer>

      <dsInvoiceScanatum>
      <xsl:value-of select= {Hier muss der 2. Wert aus der xml hin!} </dsInvoiceScanatum>

      usw.

      Hat noch jemand eine Idee?

      Comment


      • #4
        falsch gefragt?

        Nun, vielleicht habe ich auch falsch gefragt.
        Ich möchte nicht die Attributwere auslesen, die kenne ich ja, sondern den Wert, der hinter dem Attribut steht.

        wenn ich in dem xml file folgendes stehen habe:
        <data>
        <index id="Dokumenttyp">Rechnung</index>
        <contractPartner>Rechnung</contractPartner>

        kann ich den Wert von <contractPartner> auslesen

        xslt sieht dann so aus:
        <dsInvoiceScan:GeneralType>
        <xsl:value-of select="contractPartner"/>
        </dsInvoiceScan:GeneralType>

        aber ich kann eben nicht den Wert der index id "Dokumenttyp" auslesen ( Rechnung)

        Für jede Hilfe bin ich dankbar!
        LG
        Uwe

        Comment


        • #5
          Zitat: "aber ich kann eben nicht den Wert der index id "Dokumenttyp" auslesen ( Rechnung)"

          Verwende diesen Ansatz:

          <xsl:value-of select="index[@id='Dokumenttyp']/text()"/>

          Comment


          • #6
            Danke, genau diesen Tipp habe ich gebraucht.

            So kann ich jeden Wert aus dem xml auslesen.

            Danke!

            LG
            Uwe

            Comment

            Working...
            X