[Tustep-Liste] Einfügen von tags mit tuscript
Barbara Jockers
Barbara.Jockers at uni-wuerzburg.de
Di Jun 16 12:45:57 CEST 2009
Liebe Listenleser,
leider bin ich am Ende meiner (sehr geringen) tuscript-Weisheit
angekommen. Ausgangspunkt ist eine aus Word importierte Datei, deren
Tags wenig geschachtelt hintereinander stehen. Jetzt sollen
hierarchische Tags eingefügt werden. So soll das ganze nachher aussehen:
<?xml version="1.0"?>
<document>
<buchstabe id="BUCHSTABE">
<segment no="SEGMENTIDENTIFIKATOR">
<eintrag>
<ll></ll>
<koi type="lat"></koi> <!-- kann fehlen -->
<bed>
<ae></ae>
<gram>
<w></w>
<sch></sch> <!-- w und sch können (als Paar) mehrmals auftreten -->
</gram>
<lv>
<koi type="lv"></koi> <!-- kann fehlen -->
<beleg>
<bl></bl>
</beleg> <!-- beleg kann mehrmals auftreten -->
</lv>
<li></li>
</bed> <!-- bed kann mehrmals auftreten -->
</eintrag> <!-- eintrag kann mehrmals auftreten -->
</segment> <!-- segment kann mehrmals auftreten -->
</buchstabe> <!-- buchstabe kann mehrmals auftreten -->
</document>
Die zu bearbeitenden Teildateien haben entweder ein Segment- oder ein
Buchstabentag. Dieses wird zusammen mit <bed> und <bl> eingefügt
(s.u.). Außerdem fehlen noch die Tags <eintrag>, <gram>, <lv>. Da
diese in Abhängigkeit von der Tagumgebung eingesetzt werden müssen,
brauche ich dafür Bedingungen. (weiter nach dem Makro)
$$ MODE TUSCRIPT
SET quelle = "dprobe_na.xml"
SET buchstabe = "d"
SET segment = "1"
SET status = CREATE ("zwi3", SEQ-T, -std-)
IF (segment .EQ. "-") THEN
BUILD X_TABLE xx = *
DATA ,<<body>>,<<buchstabe id="{buchstabe}">>,
DATA ,<<section>>,,
DATA ,<<ae>>,<<bed>><<ae>>,
DATA ,<<beleg>>,<<beleg>><<bl>>,
DATA ,<</beleg>>,<</bl>><</beleg>>,
DATA ,<</li>>,<</li>><</bed>>,
DATA ,<</section>>,,
DATA ,<</body>>,<</buchstabe>>,
ELSE
BUILD X_TABLE xx = *
DATA ,<<body>>,,
DATA ,<<section>>,<<segment no= "{segment}">>,
DATA ,<<ae>>,<<bed>><<ae>>,
DATA ,<<beleg>>,<<beleg>><<bl>>,
DATA ,<</beleg>>,<</bl>><</beleg>>,
DATA ,<</li>>,<</li>><</bed>>,
DATA ,<</section>>,<</segment>>,
DATA ,<</body>>,,
ENDIF
IF (quelle .EI. "_na.xml") THEN
ACCESS qdaten: READ/STREAM "zwi2" sq.zq/uq, atag + text + etag, typ, stack
MODIFY ACCESS qdaten X_TABLE xx
ACCESS zdaten: WRITE/ERASE/STREAM "zwi3" sz.zz/uz, atag+text+etag, num, stack
LOOP
READ/EXIT qdaten
WRITE/NEXT/CLEAR zdaten
ENDLOOP
ENDACCESS qdaten
ENDACCESS zdaten
RELEASE X_TABLE xx
ENDIF
Wenn ich das Handbuch richtig verstanden habe, kann ich nach "ACCESS
zdaten" noch ein zweites Modify schalten, bzw. mehrere, wenn man sie
in Abhängigkeit von Bedingungen setzt. Aber wie muß ich vorgehen, daß
danach tags eingefügt werden, und zwar an die richtige Stelle?
Wahrscheinlich braucht man auch loop dafür?
Für Nachhilfe in dieser Angelegenheit wäre ich äußerst dankbar.
Außerdem habe ich noch ein paar kleine Fragen:
Gibt es in Tuscript etwas, was dem #ko-Parameter BLU entspricht? Denn
die Option NSP für READ gilt ja wohl nur für Fremddateien?
Warum wird die Zieldatei im Programm-Modus numeriert?
In der Hoffnung, daß ich Ihre Geduld nicht zu sehr strapaziere,
mit vielen Grüßen
Barbara Jockers
Mehr Informationen über die Mailingliste Tustep-Liste