Announcement

Collapse
No announcement yet.

Nur bestimmte Tage auslesen

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

  • Nur bestimmte Tage auslesen

    Hallo,

    nur vorweg, ich bin absoluter Neuling und habe leider noch gar keine Ahnung von XML und XSLT und nun muss ich eine Anpassung an einer vorhanden befüllung für Indesign vornehmen und hoffe das ihr mir helfen könnt.

    Ich versuche einen Katalog zu befüllen, aber er soll sich nur die Tage nehmen die benötigt werden.
    wir haben ein neues Element in der XML <gueltigkeit>Mo,Di,Mi,Do,Fr,Sa</gueltigkeit>
    Nun gibt es aber einen Katalog der nur halbwöchig erscheint, also:
    <gueltigkeit>Mi,Do,Fr,Sa</gueltigkeit>.

    Kann mir jemand sagen wie ich das hinbekomme das er nur den benötigten Inhalt befüllt?

    Bin für jede Hilfe dankbar

  • #2
    Benutzt du XSLT 1.0 oder 2.0? Mit 2.0 kann man ja per tokenize(gueltigkeit, ',') einfach die einzelnen Werte aus dem "gueltigkeit"-Elemente extrahieren aber so du XSLT 1.0 benutzen willst, solltest du darüber nachdenken, besser jeden Wert in ein eigenes Element zu packen, also etwa
    Code:
    <gueltigkeits-liste>
      <tag>Mi</tag>
      <tag>Do</tag>
      <tag>Fr</tag>
      <tag>Sa</tag>
    </gueltigkeits-liste>
    dann lassen sich mit XSLT/XPath 1.0 Vergleiche einfach durchführen.

    Aber grundsätzlich ist es mit XSLT 2.0 wesentlich einfacher, z.B. den Wochentag eines Datums zu bestimmen (http://www.xsltfunctions.com/xsl/fun...y-of-week.html)

    Ansonsten musst du uns genauer erklären, was du mit XSLT erreichen willst, also ein Beispiel der XML-Eingabe und die passende Ausgabe, die per XSLT erzeugt werden soll. Bisher hast du nicht erklärt, in welchem Format die Daten vorliegen, aus denen du anhand der Gültigkeitswerte einzelne Daten auswählen willst.

    Comment


    • #3
      Hmmm, ich glaube ich habe wirklich zu wenig gepostet, so könnt ihr ja gar nicht wirklich helfen, tut mir leid.

      hier ein beispielauszug aus der XML:
      <?xml version="1.0" encoding="UTF-8"?>
      <Root createAt="16_8_2011" week="36" year="2011">
      <ausgabe>Gültig vom 05.09.
      bis 10.09.2011</ausgabe>
      <werbegruppe id="vSIrogAAATBlMm3WkZ0">
      <vertriebsschiene id="1" name="Schiene1">
      <seite/>
      <a3>false</a3>
      <a4>false</a4>
      <a5>true</a5>
      <pos>false</pos>
      <streichpreis>10.99</streichpreis>
      <prozentangabe>18</prozentangabe>
      </vertriebsschiene>
      <vertriebsschiene id="2" name="Schiene2">
      <seite/>
      <streichpreis>10.99</streichpreis>
      <prozentangabe>18</prozentangabe>
      </vertriebsschiene>
      <vertriebsschiene id="3" name="Schiene3">
      <seite/>
      <streichpreis>10.99</streichpreis>
      <prozentangabe>18</prozentangabe>
      </vertriebsschiene>
      <orderNr>6</orderNr>
      <wp>7.15</wp>
      <lvp>8.99</lvp>
      <kennzeichen id="3">Ost/West</kennzeichen>
      <ekBereich>607</ekBereich>
      <vaHinweis>ohne handzettelabbildung</vaHinweis>
      <rsUeber>false</rsUeber>
      <headline1>ArtikelHead</headline1>
      <headline2>ArtikelSubhead</headline2>
      <content>ArtikelContent</content>
      <grammage>1000 g Packung</grammage>
      <vergleichsPe>0.0</vergleichsPe>
      <inhaltsMe/>
      <grundpreis/>
      <gueltigkeit>Mo,Di,Mi,Do,Fr,Sa</gueltigkeit>
      <logo1 href=""/>
      <logo2 href=""/>
      <logo3 href=""/>
      <leitartikel-bild href="\\test\test1.eps"/>
      <!---->
      </werbegruppe>


      Und hier ein Beispielauszug aus der XSL:
      <?xml version="1.0" encoding="UTF-8"?>
      <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
      <xslutput method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

      <xsl:variable name="vs" select="'Schiene2'"/>
      <xsl:variable name="anzahlSeiten" select="15"/>
      <xsl:key name="sites" match="Root/werbegruppe/vertriebsschiene[@name=$vs]" use="seite"/>

      <xsl:template match="/">
      <xsl:element name="Root">
      <xsl:element name="ausgabe">
      <xsl:value-of select="normalize-space(Root/ausgabe)"/>
      </xsl:element>
      <xsl:if test="$vs='Schiene1'">
      <xsl:element name="Musterseite1">
      <xsl:text disable-output-escaping="no">_KW</xsl:text>
      <xsl:value-of select="Root/@week"/>
      </xsl:element>
      <xsl:element name="Musterseite2">
      <xsl:text disable-output-escaping="no">_KW</xsl:text>
      <xsl:value-of select="Root/@week"/>
      </xsl:element>
      <xsl:element name="Musterseite3s">
      <xsl:text disable-output-escaping="no">_KW</xsl:text>
      <xsl:value-of select="Root/@week"/>
      </xsl:element>
      </xsl:if>
      <xsl:call-template name="fktCall">
      <xsl:with-param name="von" select="1"/>
      <xsl:with-param name="myNode" select="."/>
      </xsl:call-template>
      </xsl:element>
      </xsl:template>


      Wir laden eine XML Datei aus dem Internet und je nach dem welche XSL wir verwenden befüllt er dann unser Indesign Dokument mit den gewünschten Daten.

      z.B. wir haben Daten für bereich A und Bereich B, die sind beide in der XML, aber wenn wir sie mit der XSL Bereich B befüllen zieht er uns nur die Daten für Bereich B.
      Und nun möchte ich dem noch die gültigkeit zufügen.

      Könnt ihr mir mit den Angaben helfen? oder benötigt ihr noch etwas?

      Vielen dank noch mal

      Comment

      Working...
      X