XSLT Veranstaltungslisten

Aus LSF
Version vom 24. November 2023, 17:37 Uhr von Sven.radermacher (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

1. An QIS(LSF) anmelden

2. Über Veranstaltungen/ Vorlesungsverzeichnis zum gewünschten Teilbaum des Vorlesungsverzeichnisses (VVZ) navigieren

3. Quadratisches blaues Icon mit linker Maustaste anklicken

Wikiexcel1.jpg

4. Druckvorlage Vorlesungsverzeichnis DuE verwenden

Wikiexcel2.jpg

5. Die vom Server generierte XML Datei lokal speichern, z.B.: unter D:/ (hier:gerall.xml)

6. Den folgenden XSL Transformationscode in einer Datei (hier: vl2xl7.xslt) lokal speichern.

 <xsl:stylesheet version="2.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns="urn:schemas-microsoft-com:office:spreadsheet"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  xmlns:user="urn:my-scripts"
  xmlns:o="urn:schemas-microsoft-com:office:office"
  xmlns:x="urn:schemas-microsoft-com:office:excel"
  xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
 <xsl:output method="xml" encoding="utf-8" omit-xml-declaration="no" indent="yes"/>
 <xsl:key name="veranstnr" match="Veranstaltung" use="VeranstNummer"/>
 <xsl:template match="Vorlesungsverzeichnis">
 <xsl:processing-instruction name="mso-application">progid="Excel.Sheet"</xsl:processing-instruction>
 <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
  xmlns:o="urn:schemas-microsoft-com:office:office"
  xmlns:x="urn:schemas-microsoft-com:office:excel"
  xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
  xmlns:html="http://www.w3.org/TR/REC-html40">
  <Worksheet ss:Name="Tabelle1">
   <Table>
   <Row>
   <Cell><Data ss:Type="String">VNr</Data></Cell>
   <Cell><Data ss:Type="String">VName</Data></Cell>
   <Cell><Data ss:Type="String">VSWS</Data></Cell>
   <Cell><Data ss:Type="String">VTyp</Data></Cell>
   <Cell><Data ss:Type="String">VTyp</Data></Cell>
   <Cell><Data ss:Type="String">VDTyp</Data></Cell>
   <Cell><Data ss:Type="String">VZSemester</Data></Cell>
   <Cell><Data ss:Type="String">MaxTN</Data></Cell>
   <Cell><Data ss:Type="String">DozName</Data></Cell>
   <Cell><Data ss:Type="String">VZeit</Data></Cell>
   <Cell><Data ss:Type="String">VModulinfo</Data></Cell>
   </Row>
   <xsl:apply-templates />
   </Table>
   </Worksheet>
  </Workbook>
 </xsl:template>
 <xsl:template match="@*|node()" mode="copy-unless-empty">
     <xsl:if test=". != '' or ./@* != ''">
       <xsl:copy>
         <xsl:apply-templates select="@*|node()"/>
       </xsl:copy>
     </xsl:if>
 </xsl:template>
 <xsl:template match="Veranstaltung">
 <xsl:if test="self::node()[generate-id() = generate-id(key('veranstnr',./VeranstNummer)[1])]">
  <Row>
   <Cell><Data ss:Type="String">
   <xsl:value-of select="./VeranstNummer" /></Data></Cell>
   <Cell><Data ss:Type="String"><xsl:value-of select="./VName" /></Data></Cell>
   <Cell><Data ss:Type="String"><xsl:value-of select="./VSWS" /></Data></Cell>
   <Cell><Data ss:Type="String"><xsl:value-of select="./VTyp" /></Data></Cell>
   <Cell><Data ss:Type="String"><xsl:value-of select="./VTyp" /></Data></Cell>
   <Cell><Data ss:Type="String"><xsl:value-of select="./VDTyp" /></Data></Cell>
   <Cell><Data ss:Type="String"><xsl:value-of select="./VZSemester" /></Data></Cell>
   <Cell><Data ss:Type="String"><xsl:value-of select="./MaxTN" /></Data></Cell>
   <Cell><Data ss:Type="String">
   <xsl:for-each select="VZPerson">
     <xsl:value-of select="./DozName" />, <xsl:value-of select="./DozVorname" />
     <xsl:if test="position()!=last()">; </xsl:if>
   </xsl:for-each>
   </Data></Cell>
   <Cell><Data ss:Type="String">
   <xsl:for-each select="VZeit">
     <xsl:value-of select="./VZWoTagKurz" /> (<xsl:value-of select="./VZBeginn" />-<xsl:value-of select="./VZEnde" />)<xsl:if test="position()!=last()">; </xsl:if>
   </xsl:for-each>
   </Data></Cell>
   <Cell><Data ss:Type="String">  
   <xsl:for-each select="VModul">
     <xsl:if test="position()>1">; </xsl:if>
 	[<xsl:value-of select="PordSet/Code"/>]<xsl:for-each select="ModulSet"><xsl:if test="position()>1"><xsl:text> </xsl:text></xsl:if>(<xsl:value-of select="Code"/>::<xsl:value-of select="PordTxt"/>)</xsl:for-each>
 	</xsl:for-each>
   </Data></Cell>  
   </Row>
   </xsl:if>
 </xsl:template>
 <xsl:template match="global"></xsl:template>
 <xsl:template match="UeBez"></xsl:template>
 <xsl:template match="VKommentar"></xsl:template>
 <xsl:template match="r_verpers.pid"></xsl:template>
 <xsl:template match="VZPersonDKontakt"></xsl:template>
 </xsl:stylesheet>

7. Die XML Datei mittels der XSL Datei transformieren. Falls kein XSLT Processor auf Ihrem PC installiert ist (oder falls Ihnen das gar nichts sagt), gehen Sie bitte wie folgt vor (Plattformunabhängig, Java benötigt):

a) Saxon XSLT Processor (http://sourceforge.net/projects/saxon bzw. http://downloads.sourceforge.net/saxon/saxonb9-0-0-6j.zip oder neuer) herunterladen und unter Ihrem Programmeordner entpacken

b) Eingabeaufforderung starten über: Start -> Ausführen... -> cmd.exe

c) Programm mit beiden o.g. Dateien wie folgt aufrufen:

Wikiexcel3.jpg

8. Die generierte Excel-XML Datei sollte nun per Doppelklick in Excel (ab Vers. 2003 SP3) zu öffnen sein und kann dann nach Ihren Wünschen weiter bearbeitet werden. Beachten Sie, dass die Daten für Dozenten und Modulinformationen pro Veranstaltung zusammengefasst werden.