mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 06.12.2016 19:13 Benutzername: Passwort: Auto-Login

Thema: XSLT Script vom 07.06.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> XSLT Script
Autor Nachricht
fischchen
Threadersteller

Dabei seit: 06.03.2003
Ort: Kassel
Alter: 38
Geschlecht: Männlich
Verfasst Mi 07.06.2006 08:41
Titel

XSLT Script

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen,

ich bereite gerade eine Daten XML mit XSLT auf. Bin auf diesem Gebiet noch Anfänger und habe nun eine Stelle erreicht, an der ich nicht genau weiß wie ich das mit XSLT lösen kann.

Folgendes Problem:
In meiner Basis XML habe ich den Tag INHALT und dort steht ein umfangreicher Text wo die einzelnen Abschnitte durch [:] abgetrennt werden. In der neuen XML soll der einzelne Text jeweils in einem Tag Grundtext stehen. Also immer wenn das Trennzeichen kommt soll er ein neues Element Grundtext setzen und den entsprechenden Text bis zum nächsten Trennzeichen einfügen. Ich habe nun schon das ganze Wochenende verschiedene Varianten probiert, komme aber einfach nicht voran.

Hier mal mein momentanes Script:
Code:
<xsl:element name="INHALT">   
            <xsl:variable name="trennzeichen">[:]</xsl:variable>
            <xsl:variable name="zeichenkette" select="INHALT"/>

            <!--
                     <xsl:if test="contains(INHALT,$trennzeichen)">
                        <xsl:element name="Grundtext">   
                           <xsl:value-of select="substring-before(INHALT,$trennzeichen)"/>
                        </xsl:element>
                     </xsl:if>

            -->
         </xsl:element>


Ich hatte mir gedacht über die if-Anweisung zu kontrollieren ob noch ein Trennzeichen im String ist und bei jedem Durchlauf den String zu beschneiden. Der Haken hier ist aber das ich den Wert ja irgendwo speichern müsste und per Schleife immer wieder aktualisieren. Wäre super wenn mir da jemand von euch auf die Sprünge helfen könnte.

Vielen Dank
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
fischchen
Threadersteller

Dabei seit: 06.03.2003
Ort: Kassel
Alter: 38
Geschlecht: Männlich
Verfasst Mi 07.06.2006 10:50
Titel

Antworten mit Zitat Zum Seitenanfang

Kennt den vielleicht jemand ein gutes Forum wo man sich mit XSLT usw. auskennt?

Sollte jetzt übrigens kein pushen sein. * Nee, nee, nee *
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
sahnemuh

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 35
Geschlecht: Männlich
Verfasst Mi 07.06.2006 10:52
Titel

Antworten mit Zitat Zum Seitenanfang

schau dir mal xslfast an. da kannst du dir den kram einfach zusammenklickern... sollte einfacher sein Lächel
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst Mi 07.06.2006 11:41
Titel

Antworten mit Zitat Zum Seitenanfang

Junge, das isn wysiwyg- xsl-FO Editor, hier gehts um xsl-T.

Und die Aufgabenstellung riecht nach nem simplen Perlscript, um deinen Text aufzutrennen, da reicht regex sicher locker aus.
 
fischchen
Threadersteller

Dabei seit: 06.03.2003
Ort: Kassel
Alter: 38
Geschlecht: Männlich
Verfasst Mi 07.06.2006 12:14
Titel

Antworten mit Zitat Zum Seitenanfang

vielen Dank für eure beiden Antworten.

@sahnemuh
Mit dem Tool ist mir bestimmt nicht geholfen. Aber trotzdem danke.

@XSchinkenX
Ich möchte das aber direkt im XSLT Script regeln. Kannst du mir da helfen.

Vielen Dank
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Account gelöscht


Ort: -
Alter: -
Verfasst Sa 10.06.2006 18:19
Titel

Antworten mit Zitat Zum Seitenanfang

nö, da gibts selfhtml für. ansonsten hab ich meinen tipp ja abgegeben.
 
[fränK]
Moderator

Dabei seit: 27.04.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst So 11.06.2006 01:30
Titel

Antworten mit Zitat Zum Seitenanfang

Passt das?

XML-Quelle
Code:
<?xml version="1.0" encoding="UTF-8"?>
<inhalt>foo1[:]bar1[:]foo2[:]bar2[:]foo3[:]bar3</inhalt>


XSLT
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

   <xsl:variable name="trennzeichen">[:]</xsl:variable>

   <xsl:template match="inhalt">
      <root>
         <xsl:call-template name="jaegermeister">
            <xsl:with-param name="text" select="."/>
         </xsl:call-template>
      </root>
   </xsl:template>

   <xsl:template name="jaegermeister">
      <xsl:param name="text"/>
      <xsl:choose>
         <xsl:when test="contains($text, $trennzeichen)">
            <grundtext>
                <xsl:value-of select="substring-before($text, $trennzeichen)"/>
            </grundtext>
            <xsl:call-template name="jaegermeister">
               <xsl:with-param name="text" select="substring-after($text, $trennzeichen)"/>
            </xsl:call-template>
         </xsl:when>
         <xsl:otherwise>
            <grundtext>
               <xsl:value-of select="$text"/>
            </grundtext>
         </xsl:otherwise>
      </xsl:choose>
   </xsl:template>

</xsl:stylesheet>


XML-Ausgabe
Code:
<?xml version="1.0" encoding="UTF-8"?>
<root>
   <grundtext>foo1</grundtext>
   <grundtext>bar1</grundtext>
   <grundtext>foo2</grundtext>
   <grundtext>bar2</grundtext>
   <grundtext>foo3</grundtext>
   <grundtext>bar3</grundtext>
</root>


* Mmmh, lecker... *
  View user's profile Private Nachricht senden
fischchen
Threadersteller

Dabei seit: 06.03.2003
Ort: Kassel
Alter: 38
Geschlecht: Männlich
Verfasst Mo 12.06.2006 08:44
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo fränk,

bin erst jetzt zum testen gekommen. Genau so haut es hin.

Vielen Dank und noch eine schöne Woche
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen Hilfe bei XSLT Script
Währung mit XSLT
XSLT Position()
position=last() - XSLT
Mit XSLT URL encoden?
XML und XSLT - wie fange ich am besten an
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.