|
Subject: AW: [xsl] Replacing all Occurences of a String From: "Roger" <roger@xxxxxxxx> Date: Fri, 31 Aug 2001 11:06:09 +0200 |
Hi there
Didn't read the following postings so far (I will just after that mail), but
my problem is that I get the following xml (see below for sfzSprache,
sfzUntertitel, sfzRelease) from a third party out of a database - this is
just one film -, so I can't modify it myself.
I only can use XSLT to get the german version of sfzSprache, sfzUntertitel,
sfzRelease.
Best
Roger
<?xml version="1.0"?>
<iba>
<querystring type="resultset">
<path>filmausgabe.html/D20</path>
</querystring>
<page type="resultset">
<Section type="row" ID="Section1">
<ID>1</ID>
<lang>de</lang>
<title>Filmindex Schweiz</title>
<uri>filmindex_schweiz</uri>
<sectioninfo>
<keywordset/>
<abstract/>
</sectioninfo>
<foreignsectionid>0</foreignsectionid>
<created>0000-00-00 00:00:00</created>
<createdby>Roger Fischer</createdby>
<changed>20010703180309</changed>
<changedby/>
<l>0</l>
<r>0</r>
<Page type="row" ID="Page1">
<ID>1</ID>
<lang>de</lang>
<title>Filmausgabe</title>
<uri>filmausgabe.html</uri>
<pageinfo>
<keywordset>Schweizer Film, Film-Index, Schweizer Film
Datenbank</keywordset>
<abstract/>
</pageinfo>
<xslt>filmausgabe.xsl</xslt>
<foreignsectionid>1</foreignsectionid>
<active>1</active>
<created>0000-00-00 00:00:00</created>
<createdby>Roger Fischer</createdby>
<changed>20010704152338</changed>
<changedby>Roger Fischer</changedby>
<Document type="row" selected="selected" ID="Document20">
<ID>20</ID>
<lang/>
<title>A l'est des rêves</title>
<abstract/>
<documentinfo>
<keywordset/>
</documentinfo>
<created>0000-00-00 00:00:00</created>
<createdby/>
<changed>20010824105615</changed>
<changedby/>
<Film type="row" ID="Film111997539">
<ID>111997539</ID>
<lang>de</lang>
<sfzTitel>A l'est des rêves</sfzTitel>
<sfzSubtitel/>
<sfzProdjahr/>
<sfzRelease>May 2000</sfzRelease>
<sfzFormat>Digital Beta</sfzFormat>
<sfzFarbe>1</sfzFarbe>
<sfzDauer>50</sfzDauer>
<sfzSprache>Russian</sfzSprache>
<sfzUntertitel>French and English</sfzUntertitel>
<sfzKategorie>2</sfzKategorie>
<objectname>Film</objectname>
<created>0000-00-00 00:00:00</created>
<createdby>someone</createdby>
<changed>20010704163147</changed>
<changedby>someone</changedby>
</Film>
<Article type="row" ID="Article171">
<ID>171</ID>
<lang>de</lang>
<title>A l'est des rêves</title>
<subtitle>Luc Peter</subtitle>
<articleinfo>
<author>
<name>Doris Senn</name>
<email>
<ulink/>
</email>
<website>
<ulink/>
</website>
</author>
<date>2001-08-22</date>
<editor>
<name>Meret Ernst</name>
</editor>
<publisher>
<publishername>Chronos Verlag,
Zürich</publishername>
</publisher>
<copyright>
<year>2000</year>
<holder>Doris Senn</holder>
</copyright>
<keywordset>Cinema 46, Schweizer
Film</keywordset>
<pagenum>225 f.</pagenum>
</articleinfo>
<abstract/>
<main>
<para> «Feinde - Ich bin von Feinden
umgeben...» Die achtzigjährige Klawdia Mamykina sitzt in ihrem
geblümten Morgenmantel am Frühstückstisch, schluchzt in die
Kamera, verwirft die Hände. Nur um sich wenig später die Augen zu
reiben und zu erklären: «An dieser Stelle klopft jemand, ich sitze
allein auf einem Thron und habe meinen Text vergessen. So endete meine
Karriere in der Blüte meiner Jahre. Mein Gedächtnis hat mich im
Stich gelassen...» </para>
<para>Die ehemalige Theaterschauspielerin lebt
im Altersheim «Savina», das seit rund einem Jahrhundert seine
Türen für VertreterInnen der darstellenden Kunst offen hält:
Tänzer, Sängerinnen, Regisseure und Schauspielerinnen können
hier ihren Lebensabend verbringen. Das in neoklassizistischem Stil erbaute
Herrschaftshaus bietet rund hundert Insassen ein Zuhause, das ihnen weit
gehende Autonomie belässt. In einem grossen Park auf einer Flussinsel
nahe Sankt Petersburg gelegen, erzählt das Haus - wie seine
BewohnerInnen - mit zurückhaltender Vornehmheit von anderen Zeiten.
</para>
<para>Die Russlandkennerin Thérèse
Obrecht und der Dokumentarfilmer Luc Peter porträtieren in A l'est des
rêves fünf der Heimbewohner und lassen sie schwelgen in ihren
Erinnerungen. Alte Fotos werden herausgesucht, auf denen die einstige
Schönheit wie ein ferner Schatz bestaunt wird. «Ein gut
aussehender Junge war ich damals, nicht wahr?», meint der Schauspieler
Wassili Leonow, für den die Karriere hauptsächlich Soldatenrollen
vorbehielt. Und Ekatarina Sudakowa, die auf dem Vorplatz ihren kleinen
Teppich ausschüttelt, weist auf die «doch viel hübscheren
Damen da drüben» und rezitiert dazu - frühmorgens und noch
ohne Gebiss - eine passende Stelle aus dem Faust. Ein bürgerliches
Leben wäre für sie nie in Frage gekommen, sagt sie, die als
Kritikerin der staatlichen Kollektivierung sechzehn Jahre in Lagern
verbracht hat. Eben diese Erfahrung habe sie zur Dichterin gemacht, ist
Sudakowa überzeugt. Eine ganz andere Erinnerung an das kommunistische
Regime hat Margarita Grischkewitsch, Startänzerin des Lenin grader
Staatsballetts, die Nurejews Flucht in den Westen bitter als Verrat
empfindet. Und Nina Tschumskaya, die auf eine erfolgreiche Karriere als
Opernsängerin zurückblicken kann, glaubt, dass die Perestroika
lediglich die «Diebe» reicher, die Künstler und
Intellektuellen aber ihres Brots beraubt habe. </para>
<para> So gewährt der Regisseur nicht nur
Einblick in die Lebensläufe der illustren Heimbewohner, er zeigt auch
deren Verquickung mit einem Jahrhundert sowjetischer Geschichte. Als
Erzählstruktur dient ihm der Alltag im Haus «Savina»: die
Mahlzeitenverteilung mit dem anachronistischen Handkarren beispielsweise
oder die obligaten Verrichtungen der Pensionäre wie Gemüsegarten
pflegen, Wäsche aufhängen oder in den verregneten Tag
hinausschauen. Immer wieder lässt Luc Peter die ruhmvolle Vergangenheit
die eintönige Gegenwart durchdringen: etwa wenn aus dem Stegreif eine
Rolle deklamiert oder Literatur zitiert wird, wenn sich über die Bilder
der Gegenwart die - noch immer -eindrückliche Stimme von Nina
Tschumskaya legt, die ein Konzert im «Savina» vorbereitet. A l'est
des rêves ist der erste lange Dokumentarfilm von Luc Peter und eine in
ihrer Schlichtheit berührende Chronik. </para>
</main>
<objectname>Article</objectname>
<created>0000-00-00 00:00:00</created>
<createdby>someone</createdby>
<changed>20010827185149</changed>
<changedby>someone</changedby>
</Article>
</Document>
</Page>
</Section>
</page>
<film type="resultset">
<Film type="row" ID="Film111997539">
<ID>111997539</ID>
<lang>de</lang>
<sfzTitel>A l'est des rêves</sfzTitel>
<sfzSubtitel/>
<sfzProdjahr/>
<sfzRelease>May 2000</sfzRelease>
<sfzFormat>Digital Beta</sfzFormat>
<sfzFarbe>1</sfzFarbe>
<sfzDauer>50</sfzDauer>
<sfzSprache>Russian</sfzSprache>
<sfzUntertitel>French and English</sfzUntertitel>
<sfzKategorie>2</sfzKategorie>
<objectname>Film</objectname>
<created>0000-00-00 00:00:00</created>
<createdby>someone</createdby>
<changed>20010704163147</changed>
<changedby>someone</changedby>
<Cinema_FilmFunktion type="row" ID="Cinema_FilmFunktion349">
<ID>349</ID>
<fun>
<FilmNr>111997539</FilmNr>
<Funktion>1</Funktion>
<AdressNr>3212</AdressNr>
<Kontaktpers>0</Kontaktpers>
<Kontaktperson>
</Kontaktperson>
</fun>
<Funktionen type="row" ID="Funktionen1">
<ID>1</ID>
<funktion>
<en>Directed by</en>
<de>Realisation</de>
</funktion>
</Funktionen>
<Adressen type="row" ID="Adressen380">
<ID>380</ID>
<adresse>
<ipiId/>
<fmId>0</fmId>
<name>Peter</name>
<vorname>Luc</vorname>
<name2>Belle Journée Productions</name2>
<plz>1203</plz>
<ort>Genève</ort>
<email/>
<sfzId>3212</sfzId>
<caeId/>
<landcode>CH</landcode>
</adresse>
</Adressen>
</Cinema_FilmFunktion>
<Cinema_FilmFunktion type="row" ID="Cinema_FilmFunktion350">
<ID>350</ID>
<fun>
<FilmNr>111997539</FilmNr>
<Funktion>2</Funktion>
<AdressNr>3212</AdressNr>
<Kontaktpers>0</Kontaktpers>
<Kontaktperson>
</Kontaktperson>
</fun>
<Funktionen type="row" ID="Funktionen2">
<ID>2</ID>
<funktion>
<en>Written by</en>
<de>Drehbuch oder Drehvorlage</de>
</funktion>
</Funktionen>
<Adressen type="row" ID="Adressen380">
<ID>380</ID>
<adresse>
<ipiId/>
<fmId>0</fmId>
<name>Peter</name>
<vorname>Luc</vorname>
<name2>Belle Journée Productions</name2>
<plz>1203</plz>
<ort>Genève</ort>
<email/>
<sfzId>3212</sfzId>
<caeId/>
<landcode>CH</landcode>
</adresse>
</Adressen>
</Cinema_FilmFunktion>
<Cinema_FilmFunktion type="row" ID="Cinema_FilmFunktion351">
<ID>351</ID>
<fun>
<FilmNr>111997539</FilmNr>
<Funktion>3</Funktion>
<AdressNr>-626623678</AdressNr>
<Kontaktpers>0</Kontaktpers>
<Kontaktperson>
</Kontaktperson>
</fun>
<Funktionen type="row" ID="Funktionen3">
<ID>3</ID>
<funktion>
<en>Cinematographer</en>
<de>Kamera</de>
</funktion>
</Funktionen>
<Adressen type="row" ID="Adressen54">
<ID>54</ID>
<adresse>
<ipiId/>
<fmId>0</fmId>
<name>Barraz</name>
<vorname>Michel</vorname>
<name2/>
<plz/>
<ort/>
<email/>
<sfzId>-626623678</sfzId>
<caeId/>
<landcode>CH</landcode>
</adresse>
</Adressen>
</Cinema_FilmFunktion>
<Cinema_FilmFunktion type="row" ID="Cinema_FilmFunktion352">
<ID>352</ID>
<fun>
<FilmNr>111997539</FilmNr>
<Funktion>3</Funktion>
<AdressNr>3212</AdressNr>
<Kontaktpers>0</Kontaktpers>
<Kontaktperson>
</Kontaktperson>
</fun>
<Funktionen type="row" ID="Funktionen3">
<ID>3</ID>
<funktion>
<en>Cinematographer</en>
<de>Kamera</de>
</funktion>
</Funktionen>
<Adressen type="row" ID="Adressen380">
<ID>380</ID>
<adresse>
<ipiId/>
<fmId>0</fmId>
<name>Peter</name>
<vorname>Luc</vorname>
<name2>Belle Journée Productions</name2>
<plz>1203</plz>
<ort>Genève</ort>
<email/>
<sfzId>3212</sfzId>
<caeId/>
<landcode>CH</landcode>
</adresse>
</Adressen>
</Cinema_FilmFunktion>
<Cinema_FilmFunktion type="row" ID="Cinema_FilmFunktion353">
<ID>353</ID>
<fun>
<FilmNr>111997539</FilmNr>
<Funktion>4</Funktion>
<AdressNr>2831</AdressNr>
<Kontaktpers>0</Kontaktpers>
<Kontaktperson>
</Kontaktperson>
</fun>
<Funktionen type="row" ID="Funktionen4">
<ID>4</ID>
<funktion>
<en>Editing</en>
<de>Schnitt</de>
</funktion>
</Funktionen>
<Adressen type="row" ID="Adressen364">
<ID>364</ID>
<adresse>
<ipiId/>
<fmId>0</fmId>
<name>Sudan</name>
<vorname>Karine</vorname>
<name2/>
<plz>1201</plz>
<ort>Genève</ort>
<email/>
<sfzId>2831</sfzId>
<caeId/>
<landcode>CH</landcode>
</adresse>
</Adressen>
</Cinema_FilmFunktion>
<Cinema_FilmFunktion type="row" ID="Cinema_FilmFunktion354">
<ID>354</ID>
<fun>
<FilmNr>111997539</FilmNr>
<Funktion>5</Funktion>
<AdressNr>-626623678</AdressNr>
<Kontaktpers>0</Kontaktpers>
<Kontaktperson>
</Kontaktperson>
</fun>
<Funktionen type="row" ID="Funktionen5">
<ID>5</ID>
<funktion>
<en>Sound</en>
<de>Ton</de>
</funktion>
</Funktionen>
<Adressen type="row" ID="Adressen54">
<ID>54</ID>
<adresse>
<ipiId/>
<fmId>0</fmId>
<name>Barraz</name>
<vorname>Michel</vorname>
<name2/>
<plz/>
<ort/>
<email/>
<sfzId>-626623678</sfzId>
<caeId/>
<landcode>CH</landcode>
</adresse>
</Adressen>
</Cinema_FilmFunktion>
<Cinema_FilmFunktion type="row" ID="Cinema_FilmFunktion355">
<ID>355</ID>
<fun>
<FilmNr>111997539</FilmNr>
<Funktion>5</Funktion>
<AdressNr>3212</AdressNr>
<Kontaktpers>0</Kontaktpers>
<Kontaktperson>
</Kontaktperson>
</fun>
<Funktionen type="row" ID="Funktionen5">
<ID>5</ID>
<funktion>
<en>Sound</en>
<de>Ton</de>
</funktion>
</Funktionen>
<Adressen type="row" ID="Adressen380">
<ID>380</ID>
<adresse>
<ipiId/>
<fmId>0</fmId>
<name>Peter</name>
<vorname>Luc</vorname>
<name2>Belle Journée Productions</name2>
<plz>1203</plz>
<ort>Genève</ort>
<email/>
<sfzId>3212</sfzId>
<caeId/>
<landcode>CH</landcode>
</adresse>
</Adressen>
</Cinema_FilmFunktion>
<Cinema_FilmFunktion type="row" ID="Cinema_FilmFunktion356">
<ID>356</ID>
<fun>
<FilmNr>111997539</FilmNr>
<Funktion>9</Funktion>
<AdressNr>1737</AdressNr>
<Kontaktpers>0</Kontaktpers>
<Kontaktperson>
</Kontaktperson>
</fun>
<Funktionen type="row" ID="Funktionen9">
<ID>9</ID>
<funktion>
<en>Production</en>
<de>Produktion</de>
</funktion>
</Funktionen>
<Adressen type="row" ID="Adressen264">
<ID>264</ID>
<adresse>
<ipiId/>
<fmId>0</fmId>
<name>Escale Films</name>
<vorname/>
<name2/>
<plz>1201</plz>
<ort>Genève</ort>
<email/>
<sfzId>1737</sfzId>
<caeId/>
<landcode>CH</landcode>
</adresse>
</Adressen>
</Cinema_FilmFunktion>
<Cinema_FilmFunktion type="row" ID="Cinema_FilmFunktion357">
<ID>357</ID>
<fun>
<FilmNr>111997539</FilmNr>
<Funktion>9</Funktion>
<AdressNr>57077026</AdressNr>
<Kontaktpers>0</Kontaktpers>
<Kontaktperson>
</Kontaktperson>
</fun>
<Funktionen type="row" ID="Funktionen9">
<ID>9</ID>
<funktion>
<en>Production</en>
<de>Produktion</de>
</funktion>
</Funktionen>
<Adressen type="row" ID="Adressen637">
<ID>637</ID>
<adresse>
<ipiId/>
<fmId>0</fmId>
<name>Belle Journée Productions</name>
<vorname/>
<name2/>
<plz>1203</plz>
<ort>Genève</ort>
<email/>
<sfzId>57077026</sfzId>
<caeId/>
<landcode>CH</landcode>
</adresse>
</Adressen>
</Cinema_FilmFunktion>
<Cinema_FilmFunktion type="row" ID="Cinema_FilmFunktion358">
<ID>358</ID>
<fun>
<FilmNr>111997539</FilmNr>
<Funktion>10</Funktion>
<AdressNr>1737</AdressNr>
<Kontaktpers>0</Kontaktpers>
<Kontaktperson>
</Kontaktperson>
</fun>
<Funktionen type="row" ID="Funktionen10">
<ID>10</ID>
<funktion>
<en>World Rights</en>
<de>Weltrechte</de>
</funktion>
</Funktionen>
<Adressen type="row" ID="Adressen264">
<ID>264</ID>
<adresse>
<ipiId/>
<fmId>0</fmId>
<name>Escale Films</name>
<vorname/>
<name2/>
<plz>1201</plz>
<ort>Genève</ort>
<email/>
<sfzId>1737</sfzId>
<caeId/>
<landcode>CH</landcode>
</adresse>
</Adressen>
</Cinema_FilmFunktion>
</Film>
</film>
</iba>
-----Ursprüngliche Nachricht-----
Von: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]Im Auftrag von Chris Bayes
Gesendet: Donnerstag, 30. August 2001 18:03
An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Betreff: RE: [xsl] Replacing all Occurences of a String
Roger,
Have a look at
http://www.biglist.com/lists/xsl-list/archives/200008/msg01300.html for
some ideas on internationalization. You can extend this idea to handle
your month conversions if your datafile looked like
<dictionary>
<months lang="en">
<month abbr="jan">january</month>
...
...
<month abbr="dec">december</month>
</months>
<months lang="fr">
<month abbr="jan">janvier</month>
...
Then to convert $monthtotrans from french to english abbreviation
something like
<xsl:value-of
select="document('months.xml')/dictionary/months[@lang='en']/month[posit
ion()/document('months.xml')/dictionary/months[@lang='fr']/month[@abbr=$
monthtotrans]/@abbr
Or
<xsl:variable name="monthnum"
select="count(preceding-sibling::*/document('months.xml')/dictionary/mon
ths[@lang='fr']/month[@abbr=$monthtotrans])" />
<xsl:value-of
select="document('months.xml')/dictionary/months[@lang='en']/month[$mont
hnum]/@abbr" />
Ciao Chris
XML/XSL Portal
http://www.bayes.co.uk/xml
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Roger
> Sent: 30 August 2001 15:45
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: AW: [xsl] Replacing all Occurences of a String
>
>
> Hi David
> The problem is I have all months and also all languages, like:
>
> <sfzSprache>Italian/German/Swiss-German/French</sfzLanguage>
>
> and I want in the end:
>
> <sfzSprache>Italienisch/Deutsch/Schweizerdeutsch/Französisch</
> sfzLanguage>
>
>
> If I only would have "German" or "October" it would be easy.
> I would then transform it like this:
>
> <xsl:choose>
> <xsl:when test="string-length(sfzSprache)>0">
> Sprache:
> <xsl:choose>
> <xsl:when test="string(sfzSprache)='German'">
> Deutsch <br />
> </xsl:when>
> <xsl:when test="string(sfzSprache)='Italian'">
> Italienisch <br />
> </xsl:when>
> <xsl:when test="string(sfzSprache)='Swiss-German'">
> Schweizerdeutsch <br />
> </xsl:when>
> <xsl:when test="string(sfzSprache)='Rhaeto-romanic'">
> Rätoromanisch <br />
> </xsl:when>
> <xsl:when test="string(sfzSprache)='French'">
> Französisch <br />
> </xsl:when>
> <xsl:when test="string(sfzSprache)='English'">
> Englisch<br />
> </xsl:when>
> <xsl:when test="string(sfzSprache)='Chinese'">
> Chinesisch <br />
> </xsl:when>
> <xsl:when test="string(sfzSprache)='Russian'">
> Russisch <br />
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="sfzSprache"/><br />
> </xsl:otherwise>
> </xsl:choose>
>
>
> Thanx for any additional hints
> best
> roger
>
>
>
>
> <sfzRelease>January, February 2001</sfzRelease>
>
> I want at the end:
>
> <sfzRelease>Januar, Februar 2001</sfzRelease>
>
> Hmm, I don't suppose translate(sfzRelease,'y','') works in
> general does it. (If only natural languages followed regular
> paterns like
> mathematics....)
>
> If you have a replace string template then probably the
> easiest thing to do is make a variable containg a node set of
> replacements eg
>
> <y en="January" de="Januar"/>
>
>
> then just make a recusive template that works down a list of
> y nodes, doing a replacement using the first y node then
> calling itself on the rest of the list.
>
> David
>
> _____________________________________________________________________
> This message has been checked for all known viruses by Star
> Internet delivered through the MessageLabs Virus Scanning
> Service. For further information visit
> http://www.star.net.uk/stats.asp or > alternatively call Star
> Internet for details on the Virus Scanning Service.
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Replacing all Occurences , Tim Watts | Thread | [xsl] Replacing all Occurences of a, Roger |
| Re: [xsl] Top Ten Java and XSLT Tip, David Carlisle | Date | [xsl] how to test the existence of , Stephane . Le-Deaut |
| Month |