[Tustep-Liste] Inhalt einer Datei in Einzeldateien speichern

Stephan Moser dtpw020 at mail.uni-wuerzburg.de
Do Okt 6 15:57:54 CEST 2005


Lieber Herr Brunschoen,

unterstellend, dass die Namenserweiterung ".xml" nicht nur "Larve" ist,
dass also Ihre <page nr="3"> am Ende auch ein </page> hat,
schlage ich folgende Lösung vor:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="2.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>

<!-- was transformiert werden soll: -->
  <xsl:template match="//page">

<!-- Variable für Zieldatei: -->
    <xsl:variable name="datei">
<!-- belegen mit der Seitennummer: -->
      <xsl:value-of select="@nr"/>
<!-- und der Extension '.xml': -->
      <xsl:text>.xml</xsl:text>
    </xsl:variable>

<!-- Zieldatei bestimmen: -->
    <xsl:result-document href="{$datei}">
<!-- <page> und den vielen Text darin
     unveraendert ausgeben: -->
      <xsl:copy-of select="."/>
    </xsl:result-document>

  </xsl:template>

</xsl:transform>

Sie können die Transformation mit einem beliebigen XSLT 2.0-Prozessor
durchführen. Ich benutze gern Saxon 8.5, weil man ihn per DOS-Befehlszeile
aufrufen kann. Wenn Sie die Zieldateien mit TUSTEP weiterverarbeiten
wollen, könnten Sie daher den Java-Aufruf für Saxon per $execute absetzen.
Allerdings fällt mir kein Weg ein, TUSTEP mitzuteilen, welche Zieldateien
enstanden sind und deshalb importiert werden müssen.

In dieser Kürze herzlichen Gruß nach Berlin
Ihr Stephan Moser

>
> in einer Datei sind Daten nach folgenden Schema geordnet:
>
> 8.1 | <page nr="3">
> 8.2 | Viel Text
> 8.3 | Viel Text
>
>
> 9.1 | <page nr="57">
> 9.1 | Noch viel mehr Text
>
> 10.1 | <page nr="63">
> 10.2 | Viel Text
>
> ...
>
> Es wäre hilfreich, wenn Tustep die Daten, die jeweils mit <page 
> nr="n"> beginnen, in einer neuen Datei speichern könnte, wobei der 
> Dateiname aus dem Wert der Seitenzahl bestehen soll, also z.B. 3.xml, 
> 57.xml etc. Im Idealfall beginnt mit <page nr="n"> ein neuer Satz, 
> also z.B. 8.1.
>
> Wir brauchen also wohl ein #ko.
>
> TUSTEP müßte
> die Zeichenfolge <<page nr="<>>/" suchen
> den Wert der Seitennummer auslesen, z.B.
> zf+ 1 |<<page nr="<>>/"|
> liv 1 i1 (an dieser Stelle Danke an Herrn Trauth)
>
> ggf. die aktuelle Satznummer auslesen
> den aktuellen Satz kopieren
> prüfen, ob eine Datei mit dem Namen i1.xml vorhanden ist
> Falls nein, eine neue permanente Datei anlegen
> den kopierten Satz einfügen
>
> und weitermachen bis Ende.
>
>
> Wer hat Zeit und Lust mir zu helfen?
>
> Liebe Grüße und vielen Dank im voraus
>
> Wolfram Brunschön.
>
> ------------------------------------------------------------
> Tustep-Liste at itug.de
> https://lists.uni-wuerzburg.de/mailman/listinfo/tustep-liste
>
>



__________________________________________________________________________________

Dr. Stephan Moser                               Universität Würzburg
Tel. ++ 931 888 5846                            - Kompetenzzentrum
Fax  ++ 931 888 4616                              für EDV-Philologie -
<sm at germanistik.uni-wuerzburg.de>               Am Hubland, D-97074 Würzburg



Mehr Informationen über die Mailingliste Tustep-Liste