Kousaeng: Abfrage auf zwei xml Dokumenten beziehen

Beitrag lesen

Abgesehen, davon, dass ich hier eher eine for-each anweisung verwenden wurde, addressiert du unterschiedliche knoten, einmal das element und dann die attribute. schau mal ob es so geht:

Vielen Dank erstmal für deine schnelle Antwort,
warum ich nicht for-each nehme geschieht aus dem grund, dass ich schon vorher eine for-each schleife bei der verarbeitung von blubb benutze:
<xsl:for-each select="/root/person">
<xsl:call-template name="format"/>
</xsl:for-each>
und im Template formate soll dann die abfrage, ob die person in test vorkommt, rein. Wenn nicht, soll er sich die daten aus blubb nehmen und in das zieldokument schreiben, wobei zu beachten ist, dass in blubb alle personen sind und in test nur ausgewählte.
Wenn ich nun nochmal eine for-each nehme, so denke ich, geht mir die rechenzeit hoch oder täusche ich mich da?

test="document('test.xml')//person[@name = current()/root/person/@name]"

haengt allerdings davon ab, wo du dich gerade im blubb befindest. also muesstest du noch xptah anpassen

wie beschrieben bin ich in /root/person

test="document('test.xml')//person[@name = current()/ancestor::root/person/@name]"

warum du hier contains verwendest weiss ich nicht aber muesste dann wohl so lauten

contains hatte ich vorher, drin da ich anfangs alle @namen aus test in eine  variable schreiben wollte und dann abfragen wollte, wenn ich blubb verarbeite, ob der name in der variable steht. dies macht jedoch wenig sinn, so denk ich zumindest, oder? und daher würde ich schon dein oberes beispiel nehmen.

test="document('test.xml')//person[contains(@name,current()/ancestor::root/person/@name])"

Gruß, Holge r

nach dem einbauen in meine xsl funktioniert es immer noch net, denn er gibt wieder mal nur ein leeres zieldokument aus :(. liegt es vieleicht an der for-each die das template für jede person aufruft?

bin dankbar für jede anregung und kritik

Grüße Steffen