Hallo,
mir ist kein besserer Titel eingefallen aber das Problem liegt wie folgt:
<xsl:if test="document($PathsToSomeXMLDocuments)/root/element[@id = $idWert]>
<xsl:value-of select="string($PathsToSomeXMLDocuments[current()])/>
</xsl:if>Also so wie ich mir das da oben gedacht habe, geht es wohl nicht. Ich möchte die Pfadangabe ermitteln, bei der die XPath xsl:if Bedingung erfüllt ist. Die Bedingung ist nur für jeweils eine Datei erfüllt, ich würde nun gerne die Datei ermitteln, bei der dies der Fall ist.
Die document()-Funktion lifert den Wurzelknoten der angeforderten XML-Datei: also hast du auf der einen Seite den Wurzelknoten und auf der anderen Seite ein XML-Element oder Attribut das den Pfad dazu enthält:
document(element/@Attribut-das-den-Pafd-zur-Datei-enthaelt)
Man muss beide vergleichen:
<xsl:value-of select="//element[document(@Attribut) = $PathsToSomeXMLDocuments[/root/element[@id = $idWert]]]/@Attribut"/>
ob das jetzt wirklich in dieser Form funktioniert kann ich nicht sagen, weil ich jetzt keine Tests machte (und ich erinnere mich vage daran, dass das "$PathsToSomeXMLDocuments" bereits das Ergebnis einer document()-Funktion war? ), aber dieser Weg sollte es in etwa sein, nur vielleicht mehr verschachtelt (ev. die Variablen im Vergleich wieder auflösen:
<xsl:value-of select="//element[document(document(@Attribut)/elem/@att) = $PathsToSomeXMLDocuments]/@Attribut"/>)
Grüße
Thomas