Calc Sheet => XML

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

schoggibob
Beiträge: 8
Registriert: Mo, 08.09.2008 10:58

Calc Sheet => XML

Beitrag von schoggibob »

Hallo Leute

Ich habe ein schwieriges Problem, es geht um XML und XSL.
Ich habe ein Filter im Calc erstellt und ich muss mithilfe von XSL sozusagen ein Export machen.
Der mir den Inhalt von einem Sheet in ein XML file (mihilfe von einem XSL file) umwandelt.
Nun ist so das ich angefangen habe mit dem XSL file der code bis jetzt ist so:

Code: Alles auswählen

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
       xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
       xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
       xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
       exclude-result-prefixes="office table text">

    <xsl:output method = "xml" indent = "yes" encoding = "UTF-8" omit-xml-declaration = "no"/>

    <!-- Der Export URL wird gesetzt -->
    <xsl:param name="targetURL"/>

    <xsl:variable name="exportDate">
      <xsl:choose>
       <xsl:when test="string-length(substring-before($targetURL,';'))=10">
        <xsl:value-of select="substring-before($targetURL,';')"/>
       </xsl:when>
       <xsl:when test="string-length($targetURL)=10">
        <xsl:value-of select="$targetURL"/>
       </xsl:when>
      </xsl:choose>
    </xsl:variable>

    <xsl:variable name="exportUser">
      <xsl:if test="string-length(substring-after($targetURL,';'))>0">
       <xsl:value-of select="substring-after($targetURL,';')"/>
      </xsl:if>
    </xsl:variable>

    <!-- Der Export wird ausgeführt -->
    <xsl:template match="/">
      <service id="1" use="mandatory" name="Basic Test Service">
       <!-- Die Tabelle wird erstellt -->
       <xsl:apply-templates select="//table:table"/>
      </service>
    </xsl:template>

    <xsl:template match="table:table">
      <!-- Alle Zeilen werden gemacht -->
      <xsl:for-each select="table:table-row">
       <xsl:if test="position()>1">
         <!-- Alle Spalten werden gemacht Ware, Kosten, MWST and Datum -->
         <xsl:for-each select="table:table-cell">
          <xsl:choose>
           <xsl:when test="position()>3">
           <discription><xsl:value-of select="text:p"/></discription>
           </xsl:when>
          </xsl:choose>
         </xsl:for-each>
       </xsl:if>
      </xsl:for-each>
    </xsl:template>

    </xsl:stylesheet>

nun holt es mir aber alle informationen auf der Spalte 3 heraus (auch von andern sheets)
ich möchte aber nur aus der zelle C3 (Spalte 3 und Zeile 3) die information haben.

Ich hoffe ihr könnt mir weiterhelfen
Mit freundlichen Grüssen
Schoggibob