mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 08:19 Benutzername: Passwort: Auto-Login

Thema: [xml] xsl Transformation vom 30.10.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [xml] xsl Transformation
Autor Nachricht
der Herzog
Threadersteller

Dabei seit: 21.02.2004
Ort: Suhl
Alter: 42
Geschlecht: Männlich
Verfasst So 30.10.2005 13:31
Titel

[xml] xsl Transformation

Antworten mit Zitat Zum Seitenanfang

Original XML Datei (auszug)
Code:
<Auftragspositionen>
      <Textimport>
      <Flaechenname>Flaeche1</Flaechenname>
      <ASCIIText>Ort</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Flaeche2</Flaechenname>
      <ASCIIText>Beschreibung</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Flaeche3</Flaechenname>
      <ASCIIText>Größe</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Flaeche4</Flaechenname>
      <ASCIIText>Preis</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Flaeche</Flaechenname>
      <ASCIIText>ObjektID</ASCIIText>
   </Textimport>
    </Auftragspositionen>


XSL Datei (auszug)
Code:
<Auftragspositionen>
   <Textimport>   
      <Flaechenname>abhänig vom Muster</Flaechenname>   
      <ASCIIText><xsl:value-of select="Auftragspositionen"/></ASCIIText>
   </Textimport>   
   <Textimport>   
      <Flaechenname>abhänig vom Muster</Flaechenname>   
      <ASCIIText><xsl:value-of select="Auftragspositionen/Textimport/ASCIIText"/></ASCIIText>
   </Textimport>
   <Textimport>   
      <Flaechenname>abhänig vom Muster</Flaechenname>   
      <ASCIIText><xsl:value-of select="Auftragspositionen/Textimport/ASCIIText"/></ASCIIText>
   </Textimport>
   <Textimport>   
      <Flaechenname>abhänig vom Muster</Flaechenname>   
      <ASCIIText><xsl:value-of select="Auftragspositionen/Textimport/ASCIIText"/></ASCIIText>
   </Textimport>
   <Textimport>   
      <Flaechenname>abhänig vom Muster</Flaechenname>   
      <ASCIIText><xsl:value-of select="Auftragspositionen/Textimport/ASCIIText"/></ASCIIText>
   </Textimport>
</Auftragspositionen>


Problem:
Ich muss es hinbekommen das die "flaechennamen" sich je nach "Musterbezeichnung" ändern. Wobei die Änderung der Flächennamen nicht das Problem ist, sondern das im "ASCIIText" auch der richtige Text steht.

Ich bin nun am Ende. Ich kann nirgendwo etwas finden was mir bei meinem Probelm weiter hilft.

Die xml Datei wird von einem exteren Dienstleister angeliefert und kann nicht anderst (richtig) geliefert werden. Somit ist eine xsl Transformation nicht zu umgehen.


Zuletzt bearbeitet von der Herzog am So 30.10.2005 14:14, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst So 30.10.2005 13:55
Titel

Antworten mit Zitat Zum Seitenanfang

Kannste nicht mal ne Datei posten, die das gewünschte Endergebnis wiedergibt? Ich seh da nämlich nirgends ne "Musterbezeichnung" und kann schlecht ahnen, in welchem Kontext das steht.

Zuletzt bearbeitet von am So 30.10.2005 13:58, insgesamt 1-mal bearbeitet
 
Anzeige
Anzeige
der Herzog
Threadersteller

Dabei seit: 21.02.2004
Ort: Suhl
Alter: 42
Geschlecht: Männlich
Verfasst So 30.10.2005 14:12
Titel

Antworten mit Zitat Zum Seitenanfang

Auszug xsl Datei
Code:

<Flaechenname>
   <xsl:choose>
   <xsl:when test="Auftragspositionen/Abhmuster/Musterbezeichnung='Fließsatz'">OrtFS1</xsl:when>
   <xsl:otherwise>Ort</xsl:otherwise>
      </xsl:choose>
</Flaechenname>   


Wie schon gesagt den Flächennamen ändern ist nicht das problem aber der Text im Feld "ASCIIText" muss natürlich auch mit ankommen.

Ergebnis Fall 1:
Code:
<Auftragspositionen>
      <Textimport>
      <Flaechenname>OrtFS1</Flaechenname>
      <ASCIIText>Ort</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>OrtFS2</Flaechenname>
      <ASCIIText>Beschreibung</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>OrtFS3</Flaechenname>
      <ASCIIText>Größe</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>OrtFS4</Flaechenname>
      <ASCIIText>Preis</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>OrtFS</Flaechenname>
      <ASCIIText>ObjektID</ASCIIText>
   </Textimport>
    </Auftragspositionen>


Ergebnis Fall 2:
Code:
<Auftragspositionen>
      <Textimport>
      <Flaechenname>Ort1</Flaechenname>
      <ASCIIText>Ort</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Ort2</Flaechenname>
      <ASCIIText>Beschreibung</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Ort3</Flaechenname>
      <ASCIIText>Größe</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Ort4</Flaechenname>
      <ASCIIText>Preis</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Ort</Flaechenname>
      <ASCIIText>ObjektID</ASCIIText>
   </Textimport>
    </Auftragspositionen>
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst So 30.10.2005 14:17
Titel

Antworten mit Zitat Zum Seitenanfang

Och komm ey, DANN brauch ich natürlich die ORIGINAL-XML Datei. Du hast ja bisher nur die ZIEL-XML Datei gepostet. Und da steht nix von <Abhmuster> oder <Musterbezeichnung>.

So kann ich nichts sagen, tut mir leid. Oder bin ich selbst blöd und raff nicht was du meinst?


Zuletzt bearbeitet von am So 30.10.2005 14:25, insgesamt 1-mal bearbeitet
 
der Herzog
Threadersteller

Dabei seit: 21.02.2004
Ort: Suhl
Alter: 42
Geschlecht: Männlich
Verfasst So 30.10.2005 14:32
Titel

Antworten mit Zitat Zum Seitenanfang

xml Datei Fall 1:
Code:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<Export modus="extkey" Version="1.0">
  <Auftrag>
      <Auftragspositionen>
      <Satzdaten>
        <C4Kennzeichen />
      </Satzdaten>
      <Abhmuster>
          <Musterbezeichnung>Fließsatz</Musterbezeichnung>
      </Abhmuster>
   <Textimport>
      <Flaechenname>Text1</Flaechenname>
      <ASCIIText>Berlin</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Text2</Flaechenname>
      <ASCIIText>sehr guter zustand</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Text3</Flaechenname>
      <ASCIIText>8.000€</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Text4</Flaechenname>
      <ASCIIText>500.000KM</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Text</Flaechenname>
      <ASCIIText>vw12345</ASCIIText>
   </Textimport>
    </Auftragspositionen>
    </Auftrag>
</Export>


xml Datei Fall 2:
Code:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<Export modus="extkey" Version="1.0">
  <Auftrag>
      <Auftragspositionen>
      <Satzdaten>
        <C4Kennzeichen />
      </Satzdaten>
      <Abhmuster>
          <Musterbezeichnung>FließsatzFett</Musterbezeichnung>
      </Abhmuster>
   <Textimport>
      <Flaechenname>Text1</Flaechenname>
      <ASCIIText>München</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Text2</Flaechenname>
      <ASCIIText>schlechter zustand</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Text3</Flaechenname>
      <ASCIIText>1.000€</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Text4</Flaechenname>
      <ASCIIText>50.000KM</ASCIIText>
   </Textimport>
   <Textimport>
      <Flaechenname>Text</Flaechenname>
      <ASCIIText>vw665</ASCIIText>
   </Textimport>
    </Auftragspositionen>
    </Auftrag>
</Export>
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst So 30.10.2005 15:03
Titel

Antworten mit Zitat Zum Seitenanfang

Na hoffenltich hab ich das richtig verstanden...:

Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="xml"
                      indent="yes"
                omit-xml-declaration="yes"
              encoding="ISO-8859-1"/>

<xsl:template match="*">
<Auftragspositionen>
  <xsl:for-each select="descendant::Textimport">
  <Textimport>
    <xsl:apply-templates/>
  </Textimport>
  </xsl:for-each>
</Auftragspositionen>
</xsl:template>

<xsl:template match="Flaechenname">
  <xsl:if test="./ancestor::Auftrag/descendant::Musterbezeichnung='Fließsatz'">
    <Flaechenname><xsl:value-of select="."/>FS</Flaechenname>
  </xsl:if>
  <xsl:if test="./ancestor::Auftrag/descendant::Musterbezeichnung='FließsatzFett'">
    <Flaechenname><xsl:value-of select="."/></Flaechenname>
  </xsl:if>
</xsl:template>
<xsl:template match="ASCIIText">
  <ASCIIText><xsl:value-of select="."/></ASCIIText>
</xsl:template>
</xsl:stylesheet>
 
der Herzog
Threadersteller

Dabei seit: 21.02.2004
Ort: Suhl
Alter: 42
Geschlecht: Männlich
Verfasst So 30.10.2005 17:04
Titel

Antworten mit Zitat Zum Seitenanfang

Ich glaube es klappt jetzt endlich.


DANKE!!!!!!!!

* Ich bin unwürdig *
  View user's profile Private Nachricht senden
 
Ähnliche Themen Fotoladen CS - wo steckt die 3D-Transformation
XML transformation Knoten ersetzen statt dunplizieren
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.