Ich habe im Bereich XSLT ein Problem und weiss mir einfach nicht mehr zu helfen:
Ich habe eine XML-Datei mit vielen Datensätzen vorliegen. Diese XML-Datei möchte ich formatiert im Browser anzeigen lassen. Der beste Weg hierfür ist, meiner Meinung nach eine XSL-Schablone, da ich nicht alle Inhalte der XML-Datei anzeigen, sondern diese filtern möchte.
In der XSL-Datei filtere ich zunächst den Bereich aus, in dem ich weitere Aktionen durchführen möchte:
<blockquote><pre><b><xsl:for-each select="//Line"></b></pre></blockquote>
(sucht in der gesamten XML-Datei <font color=green>'Line'</font>-Elemente)
Dann möchte ich, dass mir die Vorlage aus allen <font color=green>'line'</font>-Elementen, wiederrum welche herausfiltert... :
<blockquote><pre><b><xsl:if test="@Type[. = 'pos.ofr.grp']></b></pre></blockquote>
... und zwar diejenigen, die im Attribut <font color=green>'Type'</font> den Inhalt <font color=green><i>'pos.ofr.grp'</i></font> aufweisen.
Aus diesen wiederrum will ich wieder bestimmte herausfiltern:
<blockquote><pre><b><xsl:if test="Field/@Name[. = 'GroupPos_SelfDesc']></b></pre></blockquote>
(Die <font color=green>'Line'</font>-Elemnte beinhalten <font color=green>'Field'</font>-Unterelemente und ich möchte nur die <font color=green>'Fields'</font> deren Attribut <font color=green>'Name'</font> den Wert <font color=green><i>'GroupPos_Selfdesc'</i></font> aufweisen.)
Mein Problem nun ist: Es funktioniert nicht! Der XSLT-Prozesor liest die erste If-Anweisung ein und wenn diese als <font color=green><i>'true'</i></font> validiert wird <b><u><font color=red>ÜBERLIEST</font></u></b> er die nächste.
Kann ich tatsächlich keine If-Anweisungen miteinander verschachteln?
Ich habe es schon mit <font color=green><i><xsl:choose></i></font> probiert aber da sieht die Sache genauso aus: wenn die erste <font color=green><i><xsl:when...></i></font>-Anweisung als wahr validiert wird, wird die nächste übersprungen.
Welche Möglichkeiten habe ich mehrere Abfragebedingungen miteinander zu nutzen?
Gibt es Lösungen mehrere If-Anweisungen zu kombinieren?
Kann man dieses problem auch anders lösen?
Ich wäre für jede nur erdenkliche Hilfe sehr dankbar
Mfg
Ich habe eine XML-Datei mit vielen Datensätzen vorliegen. Diese XML-Datei möchte ich formatiert im Browser anzeigen lassen. Der beste Weg hierfür ist, meiner Meinung nach eine XSL-Schablone, da ich nicht alle Inhalte der XML-Datei anzeigen, sondern diese filtern möchte.
In der XSL-Datei filtere ich zunächst den Bereich aus, in dem ich weitere Aktionen durchführen möchte:
<blockquote><pre><b><xsl:for-each select="//Line"></b></pre></blockquote>
(sucht in der gesamten XML-Datei <font color=green>'Line'</font>-Elemente)
Dann möchte ich, dass mir die Vorlage aus allen <font color=green>'line'</font>-Elementen, wiederrum welche herausfiltert... :
<blockquote><pre><b><xsl:if test="@Type[. = 'pos.ofr.grp']></b></pre></blockquote>
... und zwar diejenigen, die im Attribut <font color=green>'Type'</font> den Inhalt <font color=green><i>'pos.ofr.grp'</i></font> aufweisen.
Aus diesen wiederrum will ich wieder bestimmte herausfiltern:
<blockquote><pre><b><xsl:if test="Field/@Name[. = 'GroupPos_SelfDesc']></b></pre></blockquote>
(Die <font color=green>'Line'</font>-Elemnte beinhalten <font color=green>'Field'</font>-Unterelemente und ich möchte nur die <font color=green>'Fields'</font> deren Attribut <font color=green>'Name'</font> den Wert <font color=green><i>'GroupPos_Selfdesc'</i></font> aufweisen.)
Mein Problem nun ist: Es funktioniert nicht! Der XSLT-Prozesor liest die erste If-Anweisung ein und wenn diese als <font color=green><i>'true'</i></font> validiert wird <b><u><font color=red>ÜBERLIEST</font></u></b> er die nächste.
Kann ich tatsächlich keine If-Anweisungen miteinander verschachteln?
Ich habe es schon mit <font color=green><i><xsl:choose></i></font> probiert aber da sieht die Sache genauso aus: wenn die erste <font color=green><i><xsl:when...></i></font>-Anweisung als wahr validiert wird, wird die nächste übersprungen.
Welche Möglichkeiten habe ich mehrere Abfragebedingungen miteinander zu nutzen?
Gibt es Lösungen mehrere If-Anweisungen zu kombinieren?
Kann man dieses problem auch anders lösen?
Ich wäre für jede nur erdenkliche Hilfe sehr dankbar
Mfg
Comment