Mathias: Probleme beim parsen, wenn root Knoten noch Atrtribut enthält

Hallo,

wenn ich ein xml mit folgendem Schema transformieren möchte:

<?xml version="1.0" encoding="UTF-8" ?>
<GAEB>
....
<txt>hallo</tx>
<version>999</version>
</GAEB>

Folgende XSL-Datei:
<xsl:template match="GAEB">
....
</xsl:template>

funktioniert es wei gewünscht.

Hat meine XML-datei aber nun foglenden Aufbau, tut es nicht mehr:
<?xml version="1.0" encoding="UTF-8" ?>
<GAEB xmlns="http://www.gaeb.de/GAEB_DA_XML/200407">
...
</GAEB>

Als Ergebnis bekomme ich nun:
hallo999 anstatt meiner Aufbereitung des XSL.

Kann man das für den zweiten Fall auch irgendwie hinbekommen?

Mathias.

  1. Hi, ja,

    Folgende XSL-Datei:
    <xsl:template match="GAEB">
    ....
    </xsl:template>

    ich würde das <template match> auch um das Attribut erweitern. Also das du dem Parser sagst: Hol mit das Element "GAEB" mit dem Attribut "xyz".

    Gruß,
    Michael

    1. Hi Michael,

      d.h. doch aber dann, ich muss das Attribut kennen?
      das Problem ist, meine einzulesenden XML's kommen con verschiedenen Personen bzw. Firmen und der eine macht's eben rein, der andere nicht....

      Grüße und vielen Dank für die schnelle Antwort.
      Mathias

      1. Hi,

        d.h. doch aber dann, ich muss das Attribut kennen?
        das Problem ist, meine einzulesenden XML's kommen con verschiedenen Personen bzw. Firmen und der eine macht's eben rein, der andere nicht....

        Grüße und vielen Dank für die schnelle Antwort.
        Mathias

        versteh aber nicht ganz, warum das Attribut dann sinnvoll ist, wenn es der eine Reinhaut und der andere nicht??? Ist es den notwendig?

        Gruß

        1. Hi,

          d.h. doch aber dann, ich muss das Attribut kennen?
          das Problem ist, meine einzulesenden XML's kommen con verschiedenen Personen bzw. Firmen und der eine macht's eben rein, der andere nicht....

          Grüße und vielen Dank für die schnelle Antwort.
          Mathias
          versteh aber nicht ganz, warum das Attribut dann sinnvoll ist, wenn es der eine Reinhaut und der andere nicht??? Ist es den notwendig?

          Gruß

          Ne - es ist überhaupt nicht notwendig. Das Problem ist eben nur, das ich keinen Einfluss auf die Personen bzw. die Software habe, die ein entsprechendes XML erzeugen können. Und die können es angeben oder auch lassen.... Ich muss es aber einlesen können.

          Grüße
          Mathias

  2. Folgende XSL-Datei:
    <xsl:template match="GAEB">
    ....
    </xsl:template>

    funktioniert es wei gewünscht.

    Hat meine XML-datei aber nun foglenden Aufbau, tut es nicht mehr:
    <?xml version="1.0" encoding="UTF-8" ?>
    <GAEB xmlns="http://www.gaeb.de/GAEB_DA_XML/200407">
    ...
    </GAEB>

    Kannst Du den root-Knoten nicht einfach als / adressieren?

    <xsl:template match="/">
    ....
    </xsl:template>

    Liebe Grüße
    Frederik

    1. Kannst Du den root-Knoten nicht einfach als / adressieren?

      <xsl:template match="/">
      ....
      </xsl:template>

      Liebe Grüße
      Frederik

      Ne, wenn ich den root-Knoten so adressiere wird überhaupt nichts gefunden.

      1. bin natürlich total auf dem Schlauch gestanden.....
        geht natürlich......

        Vielen Dank
        Mathias

  3. Hallo,

    wenn ich ein xml mit folgendem Schema transformieren möchte:

    <?xml version="1.0" encoding="UTF-8" ?>
    <GAEB>
    ....
    <txt>hallo</tx>
    <version>999</version>
    </GAEB>

    Folgende XSL-Datei:
    <xsl:template match="GAEB">
    ....
    </xsl:template>

    funktioniert es wei gewünscht.

    Hat meine XML-datei aber nun foglenden Aufbau, tut es nicht mehr:
    <?xml version="1.0" encoding="UTF-8" ?>
    <GAEB xmlns="http://www.gaeb.de/GAEB_DA_XML/200407">
    ...
    </GAEB>

    Als Ergebnis bekomme ich nun:
    hallo999 anstatt meiner Aufbereitung des XSL.

    Kann man das für den zweiten Fall auch irgendwie hinbekommen?

    Das Problem ist der default Namensraum im XML.
    Lösung:
    <xsl:stylesheet ....  xmlns:dummyNamensraum="http://www.gaeb.de/GAEB_DA_XML/200407">

    <xsl:template match="dummyNamensraum:GAEB">

    Lese auch http://forum.de.selfhtml.org/archiv/2006/6/t130649/#m844862 durch.

    Grüße
    Thomas