Mit XSL zwei Elemente vergleichen

Hallo,

ich hab ein kleines Problem,vielleicht kann ja mir jemand helfen. Ich habe zwei Elemente in einer XML Datei auf einer Hierarchie Ebene.
Ich möchte nun diese Elemente miteinander vergleichen, sobald Atrribute aus diesen Elementen gleich sind, möchte ich beide Elemente nacheinander ausgeben…Kann man das mit zwei verschachtelten for-eacch Schleifen machen?Und wenn ja wie sieht der Vergleich aus?

Danke für eure Hilfe im Voraus

Thomas

Hi Thomas,

Dein Problem an einem Bsp. gezeigt:

=== Anfang abc.xml ===

<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="abc.xsl"?>1knellerkneller2meierkneller

=== Ende abc.xml ===

Du möchtest nun z.B. die Inhalte der Elemente „name“ mit „test“ vergleichen. Ist das korrekt?
Wenn ja, dann geht das wie folgt:

=== Anfang abc.xsl ===

treffer


=== Ende abc.xsl ===

Hilft das???

Gruss Jürgen Kneller

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Jürgen,

man das ging ja ganz schön schnell! Ich mein es aber ein wenig anders:
z.B.

<?xml version=1.0"> ... ... ... jetzt möchte ich wenn im produkt und im produktzusatz die gleiche nummer vorkommt (in den Attributen) von beiden die untergeordneten Elemente oder Attribute zusammen ausgeben...

Hi Thomas,

Dein Problem sollte wie folgt zu lösen sein:

========
prodnr:
prnr:

Vergleich:

treffer!!!

========

Gruss Jürgen

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Jürgen,

ich das mal versucht und leider wollte das nicht so mit dem Parser von Microsoft…ich erhielt keine Fehlermeldung, aber leider wurde der treffer nicht angezeigt…

Selbst wenn das funktionieren würde, hätte ich ja weiterhin das Problem, das ich nur zwei Elemente vergleichen kann, ich habe von jeden element ca 1000 weitere…d.h. ich möchte mit einer Scheife das erste Element durchgehen, in der schleife ist eine weitere, mit der ich die anderen Elemente durchgehe und die dann vergleiche…

gibt es vielleicht die Möglichkeit Variablen zu erstellen? Das man den Wert eines Atributes zwischenspeichern kann und anschließend in der zweiten Variablen wiedergeben kann?

Gruß
Thomas

Hi Thomas,

ich das mal versucht und leider wollte das nicht so mit dem
Parser von Microsoft…ich erhielt keine Fehlermeldung, aber
leider wurde der treffer nicht angezeigt…

Bei mir geht’s mit folgenden Testdateien:

=== Anfang xml1.xml ===

<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="xml1.xsl"?>1knellerjuergen2meiermichael

=== Ende xml1.xml ===

=== Anfang xsl1.xsl ===
ID
NAME
VORNAME
idnr/namenr

treffer

=== Ende xsl1.xsl ===

Selbst wenn das funktionieren würde, hätte ich ja weiterhin
das Problem, das ich nur zwei Elemente vergleichen kann, ich
habe von jeden element ca 1000 weitere…d.h. ich möchte mit
einer Scheife das erste Element durchgehen, in der schleife
ist eine weitere, mit der ich die anderen Elemente durchgehe
und die dann vergleiche…

gibt es vielleicht die Möglichkeit Variablen zu erstellen? Das
man den Wert eines Atributes zwischenspeichern kann und
anschließend in der zweiten Variablen wiedergeben kann?

Sorry, aber da bin ich leider überfragt :frowning:

Vielleicht kann jemand anderes weiterhelfen?!?!

Gruss

Jürgen

Wunderbar dasklappt echt gut… da muss ich wohl was falsch gemacht haben, jetzt hab ich nur noch ein Probleme…die Element heißen bei mir noch verschieden, die heißen nicht alle adresse, sonder einmal product und einmal prodatr…

weißt du da vielleicht noch ne lösung?

gruß

thomas

Oh warte mal, hab das was übersehen, du vergleichst nur innerhalt eines Elementes oder? Das Ziel ist ja, ich will verschieden Elemente miteinander vergleichen…sind die gleich werden die elemente nacheinander ausgegeben…

<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="xml1.xsl"?>

Das wäre ein ähnliches XML Dokument… die Ausgabe soll später so aussehen:
andreas mueller siemensstrasse 5 frankfurt
thorsten bach hoelderlin 17 babenhausen

Hi Thomas,

ich hab da leider langsam ein Verständnis- und KnowHow-problem.

Warum organisierst Du die eigentlichen Infos als Attribute, und dann noch auf verschiedene Elemente verteilt?
Warum nicht z.B. so:

<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="xml1.xsl"?>1muellerandreassiemensstr. 5frankfurt2meiermichaelsiemensstr. 6frankfurt

Dann könnte man per XSL in einer „for-each-Schleife“ die adressen „durchsteppen“ und per „value-of“ präsentieren.
Da könnte ich dann auch wieder mitreden…

Ansonsten bin ich leider am Ende meines XML-/XSL-KnowHows

Gruss

Jürgen

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ja es wäre wesentlich besser wenn der Inhalt in Elementen gespeichert wäre und nicht in Attributen, nur leider liegt die XML Datei so schon vor… und ich will sie ja grade umschreiben… und da hänge ich halt

Gruß

Thomas