XSLT Veranstaltungslisten: Unterschied zwischen den Versionen

Aus LSF
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Benötigte Datei: http://wiki.uni-due.de/lsf/images/0/0c/Vl2xl9.zip XSLT-Datei als ZIP gepackt bitte herunterladen und entpacken (z.B. mit WinZip oder WinRar). 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 Bild:wikiexcel1.jpg 4. Druckvorlage Vorlesungsverzeichnis DuE verwenden Bild:…“)
 
Keine Bearbeitungszusammenfassung
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Benötigte Datei: [[http://wiki.uni-due.de/lsf/images/0/0c/Vl2xl9.zip XSLT-Datei als ZIP gepackt]] bitte herunterladen und entpacken (z.B. mit WinZip oder WinRar).
1. An QIS(LSF) anmelden  
1. An QIS(LSF) anmelden  


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


6. Die XSL Transformationsdatei (hier: vl2xl7.xslt) herunterladen und lokal speichern.
6. Den folgenden XSL Transformationscode in einer Datei (hier: vl2xl7.xslt) lokal speichern.
 
<syntaxhighlight lang=xml>
<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>
</syntaxhighlight>


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):
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):

Aktuelle Version vom 24. November 2023, 18:37 Uhr

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.