hh: string ermitteln der pfadangabe bei document()

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.

Gruß, H.

  1. 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