Announcement

Collapse
No announcement yet.

XSL-T konvertierung in verschachtelten Ebenen aus Wordpress

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

  • XSL-T konvertierung in verschachtelten Ebenen aus Wordpress

    Hallo, ich habe folgendes Problem:
    Ich möchte aus einem Wordpress-Blog die Exportierte XML-Datei nehmen und weiterverarbeiten.
    Problem ist, dass dort einige Benutzerdefinierte Felder angelegt sind.

    Die Struktur ist wie folgt:


    PHP Code:
    ... 
    |- 
    wp:postmeta 
    |   |- meta_key  (dort steht die Benennung des Benutzerdefinierten Feldes
    |   |- 
    meta_value (dort steht der Inhalt des Benutzerdefinierten Feldes

    |- 
    wp:postmeta 
    |   |- meta_key  (dort steht die Benennung des Benutzerdefinierten Feldes
    |   |- 
    meta_value (dort steht der Inhalt des Benutzerdefinierten Feldes

    |- 
    wp:postmeta 
    |   |- meta_key  (dort steht die Benennung des Benutzerdefinierten Feldes
    |   |- 
    meta_value (dort steht der Inhalt des Benutzerdefinierten Feldes
    ... 
    Jetzt gibt es ein Benutzerdefiniertes Feld, dass z.B. eine Kategorie wählen lässt.
    (z.B. Fahrrad oder Auto) und ein Benutzerdefiniertes Feld ist ein Datum.

    Jetzt möchte ich haben, dass das XSL-Script abfragt nach der Kategorie und dann dementsprechend das Tag-Element vergibt.

    Beispiel:

    PHP Code:
    ... 
    |- 
    wp:postmeta 
    |   |- meta_key  (Kategorie
    |   |- 
    meta_value (Auto

    |- 
    wp:postmeta 
    |   |- meta_key  (Datum
    |   |- 
    meta_value (12.12.) 
    ... 
    Soll Ausgeben:


    ...
    PHP Code:
    <Auto>12.12.</Auto
    Hat mir jemand einen Tipp, wie ich das angehen kann?

    Momentan sieht mein Code wie folgt aus, aber innerhalb der if-Schleife lässt er keine Variablen zu...

    PHP Code:
    <xsl:element name "Seminar"
      <!-- 
    Seminarnummer abfragen --> 
          <
    xsl:for-each select="wp:postmeta"
        <
    xsl:if test="'Seminarnummer' = wp:meta_key/text()"><xsl:element name "Seminarnummer"><xsl:value-of select="wp:meta_value/text()"/></xsl:element></xsl:if> 
      <!-- 
    Seminarrubrik abfragen --> 
        <
    xsl:variable name="SemRub"
        <
    xsl:if test="$Seminarrubrik = wp:meta_key/text()">  
            <
    xsl:if test="wp:meta_value/text() = 'Rubrikname1'">DatumRubrik1</xsl:if> 
            <
    xsl:if test="wp:meta_value/text() = 'Rubrikname2'">DatumRubrik2</xsl:if> 
            <
    xsl:if test="wp:meta_value/text() = 'Rubrikname3'">DatumRubrik3</xsl:if> 
            <
    xsl:if test="wp:meta_value/text() = 'Rubrikname4'">DatumRubrik4</xsl:if> 
        </
    xsl:if> 
    </
    xsl:variable
      <!-- 
    Datum abfragen und Seminarrubrik dazufuegen als TAG --> 
        <
    xsl:if test="wp:meta_key/text() = 'Termin1"><xsl:element name "$SemRub"><xsl:value-of select="wp:meta_value/text()"/></xsl:element></xsl:if> 
        <
    xsl:if test="wp:meta_key/text() = 'Termin2'"><xsl:element name "$SemRub"><xsl:value-of select="wp:meta_value/text()"/></xsl:element></xsl:if> 
        <
    xsl:if test="wp:meta_key/text() = 'Termin3'"><xsl:element name "$SemRub"><xsl:value-of select="wp:meta_value/text()"/></xsl:element></xsl:if> 
        <
    xsl:if test="wp:meta_key/text() = 'Termin4'"><xsl:element name "$SemRub"><xsl:value-of select="wp:meta_value/text()"/></xsl:element></xsl:if> 
        <
    xsl:if test="wp:meta_key/text() = 'Termin5'"><xsl:element name "$SemRub"><xsl:value-of select="wp:meta_value/text()"/></xsl:element></xsl:if> 
        </
    xsl:for-each
      </
    xsl:element

  • #2
    So du Eingabedaten in einem XML-Format hast, poste ein XML-Beispiel. Und dann poste das zugehoerige Resultat, dass du mit Hilfe von XSLT erreichen willst. So verstehen wir hoffentlich besser, was du erreichen willst.

    Comment


    • #3
      Hallo Martin,

      Die jetztige XML sieht so aus:
      Code:
      <?xml version="1.0" encoding="UTF-8" ?>
      <rss version="2.0"
      	xmlns:excerpt="http://wordpress.org/export/1.1/excerpt/"
      	xmlns:content="http://purl.org/rss/1.0/modules/content/"
      	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
      	xmlns:dc="http://purl.org/dc/elements/1.1/"
      	xmlns:wp="http://wordpress.org/export/1.1/"
      >
      
      <channel>
      	<item>
      		<title>Seminartitel ABC</title>
      		<pubDate>Mon, 25 Jul 2011 11:53:07 +0000</pubDate>
      		<description></description>
      		<content:encoded><![CDATA[Mustertext Icatibusae inctatem volest omnimodi ad ut acerrovitio blab id quunt quo maximpori optatecto iditatur atur rectus, conem faccae num, sed mi, inctectur, sit aliquis sincill estiaes de vel eliquid eosa event omnis adit dolorum doluptas et, nonse ventio consequia vel modi volorporro omnimolute sape dolorentus coreheniendi nobit qui as poresto ommoluptae mo qui cores volenda ntiamet ea imo ipsa net labo. Itaectur ra qui il iscimus aritiumet, cus.
      Bis as molore iure pa nonse restium eaqui sedit vel mincte sume est videndit antis vellorenda nia num qui verferectur am quam ut dolecus etur asperias ut mintibus necestion nimusdae nobitiur atia quistiatem erchillabor molorit, seque et ut videbis reptatur? Dis es eictia quaercit aditio. Optatur?
      Ipsa commolo es eum alit, et vent.
      Vit at. Sed quiat magnimust, qui odi atempos sumquis moluptatque volupta platiis re que aut pratem. Bearum idunt, aboria quibustem]]></content:encoded>
      		<excerpt:encoded><![CDATA[]]></excerpt:encoded>
      		<wp:post_id>24</wp:post_id>
      		<wp:post_date>2011-07-25 11:53:07</wp:post_date>
      		<wp:post_date_gmt>2011-07-25 11:53:07</wp:post_date_gmt>
      		<wp:comment_status>open</wp:comment_status>
      		<wp:ping_status>open</wp:ping_status>
      		<wp:post_name>seminartitel</wp:post_name>
      		<wp:status>publish</wp:status>
      		<wp:post_parent>0</wp:post_parent>
      		<wp:menu_order>0</wp:menu_order>
      		<wp:post_type>post</wp:post_type>
      		<wp:post_password></wp:post_password>
      		<wp:is_sticky>0</wp:is_sticky>
      		<category domain="category" nicename="allgemein"><![CDATA[Allgemein]]></category>
      		<wp:postmeta>
      			<wp:meta_key>_edit_last</wp:meta_key>
      			<wp:meta_value><![CDATA[2]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wpkey>Seminarrubrik</wpkey>
      			<wp:meta_value><![CDATA[Rubrikname2]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>Seminarnummer</wp:meta_key>
      			<wp:meta_value><![CDATA[78]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>TerminStart</wp:meta_key>
      			<wp:meta_value><![CDATA[11.–13.3.]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>Referent</wp:meta_key>
      			<wp:meta_value><![CDATA[Referentenname XY]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>Beginn</wp:meta_key>
      			<wp:meta_value><![CDATA[19.30]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>TB</wp:meta_key>
      			<wp:meta_value><![CDATA[20]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>VPDZ</wp:meta_key>
      			<wp:meta_value><![CDATA[125]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>VPEZ</wp:meta_key>
      			<wp:meta_value><![CDATA[110]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>_encloseme</wp:meta_key>
      			<wp:meta_value><![CDATA[1]]></wp:meta_value>
      		</wp:postmeta>
      	</item>
      	<item>
      		<title>Seminartitel2</title>
      		<pubDate>Mon, 25 Jul 2011 11:56:10 +0000</pubDate>
      		<description></description>
      		<content:encoded><![CDATA[Mustertext Icatibusae inctatem volest omnimodi ad ut acerrovitio blab id quunt quo maximpori optatecto iditatur atur rectus, conem faccae num, sed mi, inctectur, sit aliquis sincill estiaes de vel eliquid eosa event omnis adit dolorum doluptas et, nonse ventio consequia vel modi volorporro omnimolute sape dolorentus coreheniendi nobit qui as poresto ommoluptae mo qui cores volenda ntiamet ea imo ipsa net labo. Itaectur ra qui il iscimus aritiumet, cus.
      Bis as molore iure pa nonse restium eaqui sedit vel mincte sume est videndit antis vellorenda nia num qui verferectur am quam ut dolecus etur asperias ut mintibus necestion nimusdae nobitiur atia quistiatem erchillabor molorit, seque et ut videbis reptatur? Dis es eictia quaercit aditio. Optatur?
      Ipsa commolo es eum alit, et vent.
      Vit at. Sed quiat magnimust, qui odi atempos sumquis moluptatque volupta platiis re que aut pratem. Bearum idunt, aboria quibustem.]]></content:encoded>
      		<excerpt:encoded><![CDATA[]]></excerpt:encoded>
      		<wp:post_id>28</wp:post_id>
      		<wp:post_date>2011-07-25 11:56:10</wp:post_date>
      		<wp:post_date_gmt>2011-07-25 11:56:10</wp:post_date_gmt>
      		<wp:comment_status>open</wp:comment_status>
      		<wp:ping_status>open</wp:ping_status>
      		<wp:post_name>seminartitel2</wp:post_name>
      		<wp:status>publish</wp:status>
      		<wp:post_parent>0</wp:post_parent>
      		<wp:menu_order>0</wp:menu_order>
      		<wp:post_type>post</wp:post_type>
      		<wp:post_password></wp:post_password>
      		<wp:is_sticky>0</wp:is_sticky>
      		<category domain="category" nicename="allgemein"><![CDATA[Allgemein]]></category>
      		<wp:postmeta>
      			<wp:meta_key>TerminStart</wp:meta_key>
      			<wp:meta_value><![CDATA[13.–15.1.]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>TerminStart2</wp:meta_key>
      			<wp:meta_value><![CDATA[16.–18.10.]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>_edit_last</wp:meta_key>
      			<wp:meta_value><![CDATA[2]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>Seminarrubrik</wp:meta_key>
      			<wp:meta_value><![CDATA[Rubrikname1]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>Seminarnummer</wp:meta_key>
      			<wp:meta_value><![CDATA[16]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>Referent</wp:meta_key>
      			<wp:meta_value><![CDATA[Name des Referenten]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>Beginn</wp:meta_key>
      			<wp:meta_value><![CDATA[19]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>Ende</wp:meta_key>
      			<wp:meta_value><![CDATA[gegen 20.30]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>TB</wp:meta_key>
      			<wp:meta_value><![CDATA[44]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>Ort</wp:meta_key>
      			<wp:meta_value><![CDATA[stift urach]]></wp:meta_value>
      		</wp:postmeta>
      		<wp:postmeta>
      			<wp:meta_key>Zusatz</wp:meta_key>
      			<wp:meta_value><![CDATA[Die Kosten übernimmt in der Erprobungsphase TTT]]></wp:meta_value>
      		</wp:postmeta>
      		
      	</item>
      </channel>
      </rss>

      und es soll das dabei raus kommen:


      Code:
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <Root>
      <Textabschnitt>
	<Seminar>
      		<Seminarnummer>78</Seminarnummer>
      		<DatumRubrik2> 11.–13.3. </DatumRubrik2>
      		<Referent>Referentenname XY</Referent>
      		<Seminartitel>Seminartitel ABC</Seminartitel>
      		<Seminaruntertitel>Erfahren sie über ABC alles.</Seminaruntertitel>
      		<Seminartetxt>Mustertext Icatibusae inctatem volest omnimodi ad ut acerrovitio blab id quunt quo maximpori optatecto iditatur atur rectus, conem faccae num, sed mi, inctectur, sit aliquis sincill estiaes de vel eliquid eosa event omnis adit dolorum doluptas et, nonse ventio consequia vel modi volorporro omnimolute sape dolorentus coreheniendi nobit qui as poresto ommoluptae mo qui cores volenda ntiamet ea imo ipsa net labo. Itaectur ra qui il iscimus aritiumet, cus.
      		Bis as molore iure pa nonse restium eaqui sedit vel mincte sume est videndit antis vellorenda nia num qui verferectur am quam ut dolecus etur asperias ut mintibus necestion nimusdae nobitiur atia quistiatem erchillabor molorit, seque et ut videbis reptatur? Dis es eictia quaercit aditio. Optatur?
      		Ipsa commolo es eum alit, et vent.
      		Vit at. Sed quiat magnimust, qui odi atempos sumquis moluptatque volupta platiis re que aut pratem. Bearum idunt, aboria quibustem</Seminartetxt>
      		<Preise>TB: 20,– Euro – VP: 125,– / 110,– Euro</Preise>
	</Seminar>
      
      	<Seminar>
      		<Seminarnummer>16</Seminarnummer>
      		<DatumRubrik1> 13.–15.1.</DatumRubrik1>
      		<Referent>Name des Referenten</Referent>
      		<DatumRubrik1> 16.–18.10. </DatumRubrik1>
      		<Seminartitel>Seminartitel2</Seminartitel>
      		<Seminartetxt>Mustertext Icatibusae inctatem volest omnimodi ad ut acerrovitio blab id quunt quo maximpori optatecto iditatur atur rectus, conem faccae num, sed mi, inctectur, sit aliquis sincill estiaes de vel eliquid eosa event omnis adit dolorum doluptas et, nonse ventio consequia vel modi volorporro omnimolute sape dolorentus coreheniendi nobit qui as poresto ommoluptae mo qui cores volenda ntiamet ea imo ipsa net labo. Itaectur ra qui il iscimus aritiumet, cus.
      		Bis as molore iure pa nonse restium eaqui sedit vel mincte sume est videndit antis vellorenda nia num qui verferectur am quam ut dolecus etur asperias ut mintibus necestion nimusdae nobitiur atia quistiatem erchillabor molorit, seque et ut videbis reptatur? Dis es eictia quaercit aditio. Optatur?
      		Ipsa commolo es eum alit, et vent.
      		Vit at. Sed quiat magnimust, qui odi atempos sumquis moluptatque volupta platiis re que aut pratem. Bearum idunt, aboria quibustem.</Seminartetxt>
      		<Beginn_Ende>Beginn: 19 Uhr, Ende: gegen 20.30 Uhr</Beginn_Ende>
      		<Preise>TB: 44,– Euro (einschließlich VP)</Preise>
		<Zusatz>Die Kosten übernimmt in der Erprobungsphase TTT</Zusatz>
	</Seminar>
      </Textabschnitt>
      </Root>
      Es soll mir wenn Seminarrubrik1 gewählt ist den Datumstag "DatumRubrik1" heißen und wenn Seminarrubrik2 gewählt ist den Datumstag "DatumRubrik2" usw.

      Wie kann ich das am vernünftigsten anstellen?

      Comment


      • #4
        Hier mal ein Lösungsansatz mit XSLT 2.0:
        Code:
        <xsl:stylesheet
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
          version="2.0"
          xmlns:wp="http://wordpress.org/export/1.1/"
          xmlns:ct="http://purl.org/rss/1.0/modules/content/"
          exclude-result-prefixes="wp ct">
          
          <xsl:output indent="yes"/>
          <xsl:strip-space elements="*"/>
          
          <xsl:template match="rss">
            <Root>
              <xsl:apply-templates/>
            </Root>
          </xsl:template>
          
          <xsl:template match="channel">
            <Textabschnitt>
              <xsl:apply-templates/>
            </Textabschnitt>
          </xsl:template>
          
          <xsl:template match="item">
            <Seminar>
              <xsl:apply-templates select="wp:postmeta[wp:meta_key = 'Seminarnummer'],
                                           wp:postmeta[wp:meta_key = 'TerminStart'],
                                           wp:postmeta[wp:meta_key = 'Referent'],
                                           wp:postmeta[wp:meta_key = 'TerminStart2'],
                                           title,
                                           ct:encoded"/>
            </Seminar>
          </xsl:template>
          
          <xsl:template match="wp:postmeta">
            <xsl:element name="{wp:meta_key}">
              <xsl:value-of select="wp:meta_value"/>
            </xsl:element>
          </xsl:template>
          
          <xsl:template match="wp:postmeta[wp:meta_key = 'TerminStart'] | wp:postmeta[wp:meta_key = 'TerminStart2']">
            <xsl:variable name="rubrik" select="../wp:postmeta[wp:meta_key = 'Seminarrubrik']/wp:meta_value"/>
            <xsl:variable name="el-name">
              <xsl:choose>
                <xsl:when test="$rubrik = 'Rubrikname2'">DatumRubrik2</xsl:when>
                <xsl:when test="$rubrik = 'Rubrikname1'">DatumRubrik1</xsl:when>
                <xsl:otherwise>error</xsl:otherwise>
              </xsl:choose>
            </xsl:variable>
            <xsl:element name="{$el-name}">
              <xsl:value-of select="wp:meta_value"/>
            </xsl:element>
          </xsl:template>
          
          <xsl:template match="title">
            <Seminartitel>
              <xsl:value-of select="."/>
            </Seminartitel>
          </xsl:template>
          
          <xsl:template match="ct:encoded">
            <Seminartext>
              <xsl:value-of select="."/>
            </Seminartext>
          </xsl:template>
          
        </xsl:stylesheet>
        XSLT 2.0 wird u.a. von Saxon 9, AltovaXML, XQSharp und diversen XML-Editoren unterstützt.

        Comment


        • #5
          Herzlichen Dank für den Gedankenanstoß!

          Jetzt versuche ich die Einzelnen Codezeilen zu verstehen...

          Mit Deiner Abfrage kommt bei der Momentanen XML folgender Output:

          Code:
          <?xml version="1.0" encoding="UTF-8"?>
          <Root>
             <Textabschnitt>
                <Seminar>
                   <Seminarnummer>78</Seminarnummer>
                   <error>11.–13.3.</error>
                   <Referent>Referentenname XY</Referent>
                   <Seminartitel>Seminartitel ABC</Seminartitel>
                   <Seminartext>Mustertext Icatibusae inctatem volest omnimodi ad ut acerrovitio blab id quunt quo maximpori optatecto iditatur atur rectus, conem faccae num, sed mi, inctectur, sit aliquis sincill estiaes de vel eliquid eosa event omnis adit dolorum doluptas et, nonse ventio consequia vel modi volorporro omnimolute sape dolorentus coreheniendi nobit qui as poresto ommoluptae mo qui cores volenda ntiamet ea imo ipsa net labo. Itaectur ra qui il iscimus aritiumet, cus.
          Bis as molore iure pa nonse restium eaqui sedit vel mincte sume est videndit antis vellorenda nia num qui verferectur am quam ut dolecus etur asperias ut mintibus necestion nimusdae nobitiur atia quistiatem erchillabor molorit, seque et ut videbis reptatur? Dis es eictia quaercit aditio. Optatur?
          Ipsa commolo es eum alit, et vent.
          Vit at. Sed quiat magnimust, qui odi atempos sumquis moluptatque volupta platiis re que aut pratem. Bearum idunt, aboria quibustem</Seminartext>
                </Seminar>
                <Seminar>
                   <Seminarnummer>16</Seminarnummer>
                   <DatumRubrik1>13.–15.1.</DatumRubrik1>
                   <Referent>Name des Referenten</Referent>
                   <DatumRubrik1>16.–18.10.</DatumRubrik1>
                   <Seminartitel>Seminartitel2</Seminartitel>
                   <Seminartext>Mustertext Icatibusae inctatem volest omnimodi ad ut acerrovitio blab id quunt quo maximpori optatecto iditatur atur rectus, conem faccae num, sed mi, inctectur, sit aliquis sincill estiaes de vel eliquid eosa event omnis adit dolorum doluptas et, nonse ventio consequia vel modi volorporro omnimolute sape dolorentus coreheniendi nobit qui as poresto ommoluptae mo qui cores volenda ntiamet ea imo ipsa net labo. Itaectur ra qui il iscimus aritiumet, cus.
          Bis as molore iure pa nonse restium eaqui sedit vel mincte sume est videndit antis vellorenda nia num qui verferectur am quam ut dolecus etur asperias ut mintibus necestion nimusdae nobitiur atia quistiatem erchillabor molorit, seque et ut videbis reptatur? Dis es eictia quaercit aditio. Optatur?
          Ipsa commolo es eum alit, et vent.
          Vit at. Sed quiat magnimust, qui odi atempos sumquis moluptatque volupta platiis re que aut pratem. Bearum idunt, aboria quibustem.</Seminartext>
                </Seminar>
             </Textabschnitt>
          </Root>

          Bei dem oberen Seminar müsste ja anstatt dem <error> TAG eigentlich der <DatumRubrik2> TAG stehen.

          Jetzt versuche ich einmal Deinen Code zu kommentieren, damit der Fehler gefunden werden kann...

          Code:
          <!--- Alle Inhalte von wp:postmeta mit TerminStart und TerminStart2 ausgeben -->
           <xsl:template match="wp:postmeta[wp:meta_key = 'TerminStart'] | wp:postmeta[wp:meta_key = 'TerminStart2']">
          <!--- Variable $rubrik vergeben, dort wo Seminarrubrik vergeben wurde -->
              <xsl:variable name="rubrik" select="../wp:postmeta[wp:meta_key = 'Seminarrubrik']/wp:meta_value"/>
          <!--- Variable $el-name vergeben ähnlich einer Else/If Anweisung, Wenn $rubrik = Rubrikname1 dann... -->
              <xsl:variable name="el-name">
                <xsl:choose>
                  <xsl:when test="$rubrik = 'Rubrikname1'">DatumRubrik1</xsl:when>
                  <xsl:when test="$rubrik = 'Rubrikname2'">DatumRubrik2</xsl:when>
                  <xsl:otherwise>error</xsl:otherwise>
                </xsl:choose>
              </xsl:variable>
          <!--- Tagname aus Variable einfügen -->
              <xsl:element name="{$el-name}">
          <!--- Inhalt aus wp:meta_value einfügen -->
                <xsl:value-of select="wp:meta_value"/>
              </xsl:element>
            </xsl:template>
          jetzt meine Fragen dazu:
          Ist das "choose" gleichzusetzten wie eine while-schleife?
          oder muss ich da eine "for each" schleife einbauen?

          Comment


          • #6
            Also wenn ich Saxon 9.3 HE mit dem XML-Dokument
            Code:
            <?xml version="1.0" encoding="UTF-8" ?>
            <rss version="2.0"
            	xmlns:excerpt="http://wordpress.org/export/1.1/excerpt/"
            	xmlns:content="http://purl.org/rss/1.0/modules/content/"
            	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
            	xmlns:dc="http://purl.org/dc/elements/1.1/"
            	xmlns:wp="http://wordpress.org/export/1.1/"
            >
            
            <channel>
            	<item>
            		<title>Seminartitel ABC</title>
            		<pubDate>Mon, 25 Jul 2011 11:53:07 +0000</pubDate>
            		<description></description>
            		<content:encoded><![CDATA[Mustertext Icatibusae inctatem volest omnimodi ad ut acerrovitio blab id quunt quo maximpori optatecto iditatur atur rectus, conem faccae num, sed mi, inctectur, sit aliquis sincill estiaes de vel eliquid eosa event omnis adit dolorum doluptas et, nonse ventio consequia vel modi volorporro omnimolute sape dolorentus coreheniendi nobit qui as poresto ommoluptae mo qui cores volenda ntiamet ea imo ipsa net labo. Itaectur ra qui il iscimus aritiumet, cus.
            Bis as molore iure pa nonse restium eaqui sedit vel mincte sume est videndit antis vellorenda nia num qui verferectur am quam ut dolecus etur asperias ut mintibus necestion nimusdae nobitiur atia quistiatem erchillabor molorit, seque et ut videbis reptatur? Dis es eictia quaercit aditio. Optatur?
            Ipsa commolo es eum alit, et vent.
            Vit at. Sed quiat magnimust, qui odi atempos sumquis moluptatque volupta platiis re que aut pratem. Bearum idunt, aboria quibustem]]></content:encoded>
            		<excerpt:encoded><![CDATA[]]></excerpt:encoded>
            		<wp:post_id>24</wp:post_id>
            		<wp:post_date>2011-07-25 11:53:07</wp:post_date>
            		<wp:post_date_gmt>2011-07-25 11:53:07</wp:post_date_gmt>
            		<wp:comment_status>open</wp:comment_status>
            		<wp:ping_status>open</wp:ping_status>
            		<wp:post_name>seminartitel</wp:post_name>
            		<wp:status>publish</wp:status>
            		<wp:post_parent>0</wp:post_parent>
            		<wp:menu_order>0</wp:menu_order>
            		<wp:post_type>post</wp:post_type>
            		<wp:post_password></wp:post_password>
            		<wp:is_sticky>0</wp:is_sticky>
            		<category domain="category" nicename="allgemein"><![CDATA[Allgemein]]></category>
            		<wp:postmeta>
            			<wp:meta_key>_edit_last</wp:meta_key>
            			<wp:meta_value><![CDATA[2]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>Seminarrubrik</wp:meta_key>
            			<wp:meta_value><![CDATA[Rubrikname2]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>Seminarnummer</wp:meta_key>
            			<wp:meta_value><![CDATA[78]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>TerminStart</wp:meta_key>
            			<wp:meta_value><![CDATA[11.–13.3.]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>Referent</wp:meta_key>
            			<wp:meta_value><![CDATA[Referentenname XY]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>Beginn</wp:meta_key>
            			<wp:meta_value><![CDATA[19.30]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>TB</wp:meta_key>
            			<wp:meta_value><![CDATA[20]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>VPDZ</wp:meta_key>
            			<wp:meta_value><![CDATA[125]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>VPEZ</wp:meta_key>
            			<wp:meta_value><![CDATA[110]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>_encloseme</wp:meta_key>
            			<wp:meta_value><![CDATA[1]]></wp:meta_value>
            		</wp:postmeta>
            	</item>
            	<item>
            		<title>Seminartitel2</title>
            		<pubDate>Mon, 25 Jul 2011 11:56:10 +0000</pubDate>
            		<description></description>
            		<content:encoded><![CDATA[Mustertext Icatibusae inctatem volest omnimodi ad ut acerrovitio blab id quunt quo maximpori optatecto iditatur atur rectus, conem faccae num, sed mi, inctectur, sit aliquis sincill estiaes de vel eliquid eosa event omnis adit dolorum doluptas et, nonse ventio consequia vel modi volorporro omnimolute sape dolorentus coreheniendi nobit qui as poresto ommoluptae mo qui cores volenda ntiamet ea imo ipsa net labo. Itaectur ra qui il iscimus aritiumet, cus.
            Bis as molore iure pa nonse restium eaqui sedit vel mincte sume est videndit antis vellorenda nia num qui verferectur am quam ut dolecus etur asperias ut mintibus necestion nimusdae nobitiur atia quistiatem erchillabor molorit, seque et ut videbis reptatur? Dis es eictia quaercit aditio. Optatur?
            Ipsa commolo es eum alit, et vent.
            Vit at. Sed quiat magnimust, qui odi atempos sumquis moluptatque volupta platiis re que aut pratem. Bearum idunt, aboria quibustem.]]></content:encoded>
            		<excerpt:encoded><![CDATA[]]></excerpt:encoded>
            		<wp:post_id>28</wp:post_id>
            		<wp:post_date>2011-07-25 11:56:10</wp:post_date>
            		<wp:post_date_gmt>2011-07-25 11:56:10</wp:post_date_gmt>
            		<wp:comment_status>open</wp:comment_status>
            		<wp:ping_status>open</wp:ping_status>
            		<wp:post_name>seminartitel2</wp:post_name>
            		<wp:status>publish</wp:status>
            		<wp:post_parent>0</wp:post_parent>
            		<wp:menu_order>0</wp:menu_order>
            		<wp:post_type>post</wp:post_type>
            		<wp:post_password></wp:post_password>
            		<wp:is_sticky>0</wp:is_sticky>
            		<category domain="category" nicename="allgemein"><![CDATA[Allgemein]]></category>
            		<wp:postmeta>
            			<wp:meta_key>TerminStart</wp:meta_key>
            			<wp:meta_value><![CDATA[13.–15.1.]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>TerminStart2</wp:meta_key>
            			<wp:meta_value><![CDATA[16.–18.10.]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>_edit_last</wp:meta_key>
            			<wp:meta_value><![CDATA[2]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>Seminarrubrik</wp:meta_key>
            			<wp:meta_value><![CDATA[Rubrikname1]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>Seminarnummer</wp:meta_key>
            			<wp:meta_value><![CDATA[16]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>Referent</wp:meta_key>
            			<wp:meta_value><![CDATA[Name des Referenten]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>Beginn</wp:meta_key>
            			<wp:meta_value><![CDATA[19]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>Ende</wp:meta_key>
            			<wp:meta_value><![CDATA[gegen 20.30]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>TB</wp:meta_key>
            			<wp:meta_value><![CDATA[44]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>Ort</wp:meta_key>
            			<wp:meta_value><![CDATA[stift urach]]></wp:meta_value>
            		</wp:postmeta>
            		<wp:postmeta>
            			<wp:meta_key>Zusatz</wp:meta_key>
            			<wp:meta_value><![CDATA[Die Kosten übernimmt in der Erprobungsphase TTT]]></wp:meta_value>
            		</wp:postmeta>
            		
            	</item>
            </channel>
            </rss>
            und dem von mir geposteten Stylesheet benutze, erhalte ich folgendes Resultat:
            Code:
            <?xml version="1.0" encoding="UTF-8"?>
            <Root>
               <Textabschnitt>
                  <Seminar>
                     <Seminarnummer>78</Seminarnummer>
                     <DatumRubrik2>11.–13.3.</DatumRubrik2>
                     <Referent>Referentenname XY</Referent>
                     <Seminartitel>Seminartitel ABC</Seminartitel>
                     <Seminartext>Mustertext Icatibusae inctatem volest omnimodi ad ut acerrovitio blab id quunt quo maximpori optatecto iditatur atur rectus, conem faccae num, sed mi, inctectur, sit aliquis sincill estiaes de vel eliquid eosa event omnis adit dolorum doluptas et, nonse ventio consequia vel modi volorporro omnimolute sape dolorentus coreheniendi nobit qui as poresto ommoluptae mo qui cores volenda ntiamet ea imo ipsa net labo. Itaectur ra qui il iscimus aritiumet, cus.
            Bis as molore iure pa nonse restium eaqui sedit vel mincte sume est videndit antis vellorenda nia num qui verferectur am quam ut dolecus etur asperias ut mintibus necestion nimusdae nobitiur atia quistiatem erchillabor molorit, seque et ut videbis reptatur? Dis es eictia quaercit aditio. Optatur?
            Ipsa commolo es eum alit, et vent.
            Vit at. Sed quiat magnimust, qui odi atempos sumquis moluptatque volupta platiis re que aut pratem. Bearum idunt, aboria quibustem</Seminartext>
                  </Seminar>
                  <Seminar>
                     <Seminarnummer>16</Seminarnummer>
                     <DatumRubrik1>13.–15.1.</DatumRubrik1>
                     <Referent>Name des Referenten</Referent>
                     <DatumRubrik1>16.–18.10.</DatumRubrik1>
                     <Seminartitel>Seminartitel2</Seminartitel>
                     <Seminartext>Mustertext Icatibusae inctatem volest omnimodi ad ut acerrovitio blab id quunt quo maximpori optatecto iditatur atur rectus, conem faccae num, sed mi, inctectur, sit aliquis sincill estiaes de vel eliquid eosa event omnis adit dolorum doluptas et, nonse ventio consequia vel modi volorporro omnimolute sape dolorentus coreheniendi nobit qui as poresto ommoluptae mo qui cores volenda ntiamet ea imo ipsa net labo. Itaectur ra qui il iscimus aritiumet, cus.
            Bis as molore iure pa nonse restium eaqui sedit vel mincte sume est videndit antis vellorenda nia num qui verferectur am quam ut dolecus etur asperias ut mintibus necestion nimusdae nobitiur atia quistiatem erchillabor molorit, seque et ut videbis reptatur? Dis es eictia quaercit aditio. Optatur?
            Ipsa commolo es eum alit, et vent.
            Vit at. Sed quiat magnimust, qui odi atempos sumquis moluptatque volupta platiis re que aut pratem. Bearum idunt, aboria quibustem.</Seminartext>
                  </Seminar>
               </Textabschnitt>
            </Root>
            Prüfe als nochmals, ob die Rubriknamen im XSLT und im Eingabedokument übereinstimmen.

            Comment

            Working...
            X