ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
1314
1314
EMPFEHLEN
-
26.05.10 11:21 #1
- Registriert seit
- Apr 2010
- Beiträge
- 13
Hallo alle zusammen,
ich habe hier eine XML-Datei die wie folgt aussieht:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
<?xml version="1.0" encoding="utf-8"?> <tmx version="1.4"> <header creationtool="mein tool" srclang="de-DE" o-tmf="xml" segtype="sentence" creationtoolversion="1" adminlang="en" datatype="plaintext"> <prop type="x-appName">TestApp</prop> <prop type="x-appVersion">1</prop> </header> <body> <tu> <prop type="x-catalog">Katalog1</prop> <prop type="x-version"></prop> <prop type="x-meta">Meta1</prop> <tuv xml:lang="de-DE"> <seg>Übersetzung zu Meta1</seg> </tuv> <tuv xml:lang="en-US"> <seg>Übersetzung zu Meta1</seg> </tuv> </tu> <tu> <prop type="x-catalog">Katalog1</prop> <prop type="x-version"></prop> <prop type="x-meta">Meta2</prop> <tuv xml:lang="de-DE"> <seg>Übersetzung zu Meta2</seg> </tuv> <tuv xml:lang="en-US"> <seg>Übersetzung zu Meta2</seg> </tuv> </tu> <tu> <prop type="x-catalog">Katalog2</prop> <prop type="x-version"></prop> <prop type="x-meta">Meta1</prop> <tuv xml:lang="de-DE"> <seg>Übersetzung zu Meta1</seg> </tuv> <tuv xml:lang="el-GR"> <seg>Übersetzung zu Meta1</seg> </tuv> </tu> ...
und ich versuche gerade über XSL Transformation mir alle Kataloge in allen verfügbaren Sprachen anzeigen zu lassen.
Leider scheitert die Transformation in einem Fehler, den ich mir nicht ganz erklären kann: "Fehler in XPath 2.0-Ausdruck. Kein Node-Element"
Mein XSL Template sieht folgendermaßen aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<xsl:template match="/"> <xsl:variable name="allCatalogs" select="distinct-values(tmx/body/tu/prop[@type='x-catalog'])" /> <xsl:variable name="allLanguages" select="distinct-values(tmx/body/tu/tuv/@xml:lang)" /> <xsl:for-each select="($allCatalogs)"> <xsl:variable name="actualCatalog" select="." /> <xsl:for-each select="($allLanguages)"> <xsl:variable name="actualLanguage" select="." /> <xsl:for-each select="/tmx/body/tu"> <xsl:if test="prop[attribute::type='x-catalog'] = ($actualCatalog)"> <xsl:for-each select="tuv"> <xsl:if test="@xml:lang = ($actualLanguage)"> <xsl:value-of select="($actualCatalog)" /> <xsl:value-of select="($actualLanguage)" /> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:template>
Als XSLT-Engine nutze ich Altova XMLSpy 2010 und der Fehler tritt bei <xsl:for-each select="/tmx/body/tu"> auf.
Kann es sein, das mir die Variablen irgendwie den Scope der Schleife verändern? Aber dann müsste ich doch mit einer Abfrage vom Document-Root trotzdem die Elemente erreichen (/tmx/body/tu), oder nicht?
Wäre super wenn mir da jemand auf die Sprünge helfen könnte!
Danke schonmal
Ähnliche Themen
-
XSLT XPath compare Problem
Von vaporizer im Forum XML TechnologienAntworten: 2Letzter Beitrag: 31.08.09, 12:22 -
Inkrementierung einer Variablen in xslt 1.0
Von Helix86 im Forum XML TechnologienAntworten: 1Letzter Beitrag: 27.02.09, 15:32 -
Probleme mit XPath -
Von DomeTheDon im Forum XML TechnologienAntworten: 2Letzter Beitrag: 13.02.08, 15:50 -
Frage zu XSLT,XPath,XQuery
Von WeirdAl im Forum XML TechnologienAntworten: 1Letzter Beitrag: 26.01.08, 18:14 -
XPath und Parser (XML,XSLT)
Von bambam-cell im Forum JavaAntworten: 1Letzter Beitrag: 28.10.06, 17:48





Zitieren
Login





