Komm da irgendwie nicht wirklich klar mit...
Also hier nochmal meine Aufgabe:
Es soll geprüft werden welche Buchstaben in dem "test.xml" und welche
in dem
"vorlagen.xml" vorhanden sind. Die fehlenden sollen ebenfalls
ausgegeben werden.
Das Problem ist:
- In "vorlage.xml" sind Buchstaben-Reihen enthalten (z.B. A-C) Da hast
Du mir ja den Code gegeben...
- Für jede "RegelNummer" (enthalten in "test.xml") soll diese
Auswertung separat ausgegeben werden.
Also welche Buchstaben in "RegelNummer1" nicht vorhanden sind, soll in
den "Block"RegelNummer1" der
Ausgabe enthalten sein...usw...
Kannst du mir sagen was an dem XSLT nicht stimmt?
Vielen Dank!
Grüße
Andreas
---- test.xml ----
<?xml version="1.0" encoding="ISO-8859-2"?>
<?xml-stylesheet type="text/xsl" href="transformTest.xslt"?>
<RegelListe>
<Regel>
<RegelNummer>1</RegelNummer>
<Ausschluss1>
<Nummer>1</Nummer>
<Nummer>A</Nummer>
</Ausschluss1>
<Ausschluss2>
<Nummer>41</Nummer>
<Nummer>C</Nummer>
</Ausschluss2>
</Regel>
<Regel>
<RegelNummer>2</RegelNummer>
<Ausschluss1>
<Nummer>999</Nummer>
<Nummer>55</Nummer>
</Ausschluss1>
<Ausschluss2>
<Nummer>51</Nummer>
<Nummer>52</Nummer>
</Ausschluss2>
</Regel>
</RegelListe>
---------------
---- vorlage.xml ----
<?xml version="1.0" encoding="ISO-8859-2"?>
<DanebenNicht>
<G1>
<data fehler="A"/>
<data fehler="8"/>
<data fehler="B"/>
<data fehler="3"/>
<data fehler="E-G"/>
<data fehler="C"/>
</G1>
<G2>
<data fehler="A"/>
<data fehler="8-11"/>
<data fehler="L"/>
<data fehler="3"/>
<data fehler="E-G"/>
<data fehler="C"/>
</G2>
</DanebenNicht>
----------------------
---- neuTransform.xslt ----
<?xml version="1.0" encoding="ISO-8859-2"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs" version="2.0">
<xsl:output method="xml" version="1.0" encoding="ISO-8859-2"
indent="yes"/>
<xsl:template match="/">
<xsl:variable name="unserTest"
select="RegelListe/Regel/NummernListe/Nummer return
string-to-codepoints(Nummer[1])" />
<xsl:variable name="vorlage" select="for $n in
document('vorlage.xml')/Liste/Nummer/data[1]/@nummer return
string-to-codepoints($n)[1]" />
<xsl:variable name="vergleich"
select="string-to-codepoints(substring($unserTest, 1, 1)) to
string-to-codepoints(substring($unserTest, 3, 1))" />
<xsl:value-of select="codepoints-to-string($vergleich[not(. =
$vorlage)])" />
</xsl:template>
</xsl:stylesheet>